firewire: prevent userspace from accessing shut down devices
authorJay Fenlason <fenlason@redhat.com>
Fri, 16 May 2008 15:15:23 +0000 (11:15 -0400)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Tue, 20 May 2008 16:24:17 +0000 (18:24 +0200)
commit551f4cb9de716ffcdaf968c99a450c22ff12e8c3
tree97ad7f4a9bf073a8b8c9c61ae44eb9f1c41c0698
parent93c596f7d611b379302bbdd26f31acdf72f4859a
firewire: prevent userspace from accessing shut down devices

If userspace ignores the POLLERR bit from poll(), and only attempts to
read() the device when POLLIN is set, it can still make ioctl() calls on
a device that has been removed from the system.  The node_id and
generation returned by GET_INFO will be outdated, but INITIATE_BUS_RESET
would still cause a bus reset, and GET_CYCLE_TIMER will return data.
And if you guess the correct generation to use, you can send requests to
a different device on the bus, and get responses back.

This patch prevents open, ioctl, compat_ioctl, and mmap against shutdown
devices.

Signed-off-by: Jay Fenlason <fenlason@redhat.com>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
drivers/firewire/fw-cdev.c