Begin forwarded message:
Date: Tue, 15 Aug 2017 14:21:36 +0000 From: bugzilla-dae...@bugzilla.kernel.org To: step...@networkplumber.org Subject: [Bug 196671] New: TUN(GET/ATTACH/DETACH)FILTER ioctls fail in a x86-32 process on an x86-64 kernel https://bugzilla.kernel.org/show_bug.cgi?id=196671 Bug ID: 196671 Summary: TUN(GET/ATTACH/DETACH)FILTER ioctls fail in a x86-32 process on an x86-64 kernel Product: Networking Version: 2.5 Kernel Version: 4.12.0 (Linus) Hardware: All OS: Linux Tree: Mainline Status: NEW Severity: normal Priority: P1 Component: Other Assignee: step...@networkplumber.org Reporter: rob...@ocallahan.org Regression: No These ioctls take a 'struct sock_fprog' but there's no 32-bit compat code, which has two consequences: 1) The ioctl numbers are incorrect for 32-bit processes running on a 64-bit kernel. The userspace ioctl numbers use an 8-byte 'size' field but the kernel expects a 16-byte size field, so the ioctls fail with EINVAL. You can hack around this by handcoding the 64-bit ioctl number. 2) Userspace must supply a sock_fprog with the 64-bit layout. Of course these workarounds assume you're running on a 64-bit kernel, so they're no good if you might be running on a 32-bit kernel. -- You are receiving this mail because: You are the assignee for the bug.