aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/firewire/nosy.h
diff options
context:
space:
mode:
authorStefan Richter <stefanr@s5r6.in-berlin.de>2011-08-11 00:06:04 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-03-19 08:57:43 -0700
commit4995a6913d6ada9672179736affd5606f2281edb (patch)
tree9b52054a57787d48f497ff85c6fb950eb426245a /drivers/firewire/nosy.h
parent9217bfbbade56ef9dfee88773c2105e619028fa1 (diff)
downloadkernel_samsung_aries-4995a6913d6ada9672179736affd5606f2281edb.zip
kernel_samsung_aries-4995a6913d6ada9672179736affd5606f2281edb.tar.gz
kernel_samsung_aries-4995a6913d6ada9672179736affd5606f2281edb.tar.bz2
firewire: cdev: fix 32 bit userland on 64 bit kernel compat corner cases
commit 9c1176b6a28850703ea6e3a0f0c703f6d6c61cd3 upstream. Clemens points out that we need to use compat_ptr() in order to safely cast from u64 to addresses of a 32-bit usermode client. Before, our conversion went wrong - in practice if the client cast from pointer to integer such that sign-extension happened, (libraw1394 and libdc1394 at least were not doing that, IOW were not affected) or - in theory on s390 (which doesn't have FireWire though) and on the tile architecture, regardless of what the client does. The bug would usually be observed as the initial get_info ioctl failing with "Bad address" (EFAULT). Reported-by: Carl Karsten <carl@personnelware.com> Reported-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/firewire/nosy.h')
0 files changed, 0 insertions, 0 deletions