udev/path_id: correct segmentation fault due to missing NULL check
authorHendrik Brueckner <brueckner@linux.vnet.ibm.com>
Fri, 19 Feb 2016 14:21:18 +0000 (15:21 +0100)
committerHendrik Brueckner <brueckner@linux.vnet.ibm.com>
Fri, 19 Feb 2016 14:21:18 +0000 (15:21 +0100)
Running "udevadm test-builtin path_id /sys/devices/platform/" results
in a segmentation fault.

The problem is that udev_device_get_subsystem(dev) might return NULL
in a streq() call.  Solve this problem by using streq_ptr() instead.

src/udev/udev-builtin-path_id.c

index b6ed45d..6e9adc6 100644 (file)
@@ -712,7 +712,7 @@ static int builtin_path_id(struct udev_device *dev, int argc, char *argv[], bool
          * devices do not expose their buses and do not provide a unique
          * and predictable name that way.
          */
-        if (streq(udev_device_get_subsystem(dev), "block") && !supported_transport)
+        if (streq_ptr(udev_device_get_subsystem(dev), "block") && !supported_transport)
                 path = mfree(path);
 
         if (path != NULL) {