ieee1394: fix NULL pointer dereference in sysfs access
authorStefan Richter <stefanr@s5r6.in-berlin.de>
Thu, 1 May 2008 08:43:04 +0000 (10:43 +0200)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Thu, 1 May 2008 17:55:23 +0000 (19:55 +0200)
Regression since "ieee1394: prevent device binding of raw1394,
video1394, dv1394", commit d2ace29fa44589da51fedc06a67b3f05301f3bfd:
$ cat /sys/bus/ieee1394/drivers/raw1394/device_ids
triggers a NULL pointer dereference in fw_show_drv_device_ids.
Reported by Miles Lane.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Tested-by: Miles Lane <miles.lane@gmail.com>
drivers/ieee1394/nodemgr.c

index 70afa3786f3f7d549f91d9c8317b0bd0ff105931..c6babe802a3b56db9526d58c944012893583b362 100644 (file)
@@ -520,8 +520,11 @@ static ssize_t fw_show_drv_device_ids(struct device_driver *drv, char *buf)
        char *scratch = buf;
 
        driver = container_of(drv, struct hpsb_protocol_driver, driver);
+       id = driver->id_table;
+       if (!id)
+               return 0;
 
-       for (id = driver->id_table; id->match_flags != 0; id++) {
+       for (; id->match_flags != 0; id++) {
                int need_coma = 0;
 
                if (id->match_flags & IEEE1394_MATCH_VENDOR_ID) {