[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20170815091518.07ebcbcd@xeon-e3>
Date: Tue, 15 Aug 2017 09:15:18 -0700
From: Stephen Hemminger <stephen@...workplumber.org>
To: netdev@...r.kernel.org
Subject: Fw: [Bug 196671] New: TUN(GET/ATTACH/DETACH)FILTER ioctls fail in a
x86-32 process on an x86-64 kernel
Begin forwarded message:
Date: Tue, 15 Aug 2017 14:21:36 +0000
From: bugzilla-daemon@...zilla.kernel.org
To: stephen@...workplumber.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: stephen@...workplumber.org
Reporter: robert@...llahan.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.
Powered by blists - more mailing lists