Stefan Richter
9c1176b6a2
firewire: cdev: fix 32 bit userland on 64 bit kernel compat corner cases
...
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>
2011-08-12 15:30:08 +02:00
..
2011-04-26 11:33:18 +02:00
2011-04-11 22:54:42 +02:00
2011-04-24 11:35:40 -04:00
2011-04-07 11:14:49 -07:00
2011-03-31 11:26:23 -03:00
2011-04-26 11:33:09 +02:00
2011-05-03 09:28:13 -07:00
2011-04-07 11:14:49 -07:00
2011-03-31 11:26:23 -03:00
2011-04-21 09:58:42 -07:00
2011-04-30 10:14:08 +01:00
2011-04-12 14:38:57 -07:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-03-22 17:44:12 -07:00
2011-04-11 15:44:38 -07:00
2011-04-26 16:18:56 +02:00
2011-08-12 15:30:08 +02:00
2011-03-22 17:44:15 -07:00
2011-04-11 15:44:38 -07:00
2011-05-09 16:59:51 -07:00
2011-04-07 11:14:49 -07:00
2011-05-01 09:06:35 -07:00
2011-03-18 17:15:11 -07:00
2011-05-01 18:18:49 +02:00
2011-04-21 19:43:59 +02:00
2011-03-17 14:05:34 +01:00
2011-04-26 23:31:11 -07:00
2011-05-02 20:26:32 -07:00
2011-03-31 11:26:23 -03:00
2011-04-14 16:06:54 -07:00
2011-03-31 11:26:23 -03:00
2011-04-07 11:14:49 -07:00
2011-04-21 10:00:00 -07:00
2011-05-10 22:53:45 +02:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-05-02 15:29:26 +03:00
2011-04-14 16:06:55 -07:00
2011-04-27 19:16:50 -04:00
2011-04-26 23:31:11 -07:00
2011-05-02 15:54:31 -07:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-04-19 16:36:24 -07:00
2011-04-21 09:56:35 -07:00
2011-04-26 23:31:11 -07:00
2011-05-09 10:48:47 -04:00
2011-03-31 11:26:23 -03:00
2011-03-29 14:48:19 +02:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-04-14 16:06:56 -07:00
2011-03-31 11:26:23 -03:00
2011-04-28 11:16:21 +02:00
2011-04-29 10:42:25 +02:00
2011-03-31 11:26:23 -03:00
2011-05-03 15:30:00 -05:00
2011-03-31 11:26:23 -03:00
2011-03-30 00:15:49 +02:00
2011-04-11 15:44:38 -07:00
2011-03-31 11:26:23 -03:00
2011-05-04 14:23:41 -07:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-04-19 16:38:50 -07:00
2011-03-31 11:26:23 -03:00
2011-05-03 11:14:32 -07:00
2011-03-31 11:26:23 -03:00
2011-03-13 23:08:19 +02:00
2011-04-12 23:07:42 +08:00
2011-04-21 22:57:00 +09:30
2011-03-28 19:33:04 +02:00
2011-03-31 11:26:23 -03:00
2011-04-26 12:50:44 +00:00
2011-04-20 00:36:11 +02:00