[systemd-commits] src/core

Harald Hoyer harald at kemper.freedesktop.org
Wed Apr 17 00:06:03 PDT 2013


 src/core/device.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

New commits:
commit 003ac9d0318ce28e0b29af5440c9f28f884da04c
Author: Harald Hoyer <harald at redhat.com>
Date:   Fri Apr 12 11:56:27 2013 +0200

    core/device.c: fix possible segfault
    
    https://bugs.freedesktop.org/show_bug.cgi?id=63189
    
    better fail than segfault
    
    systemd[1]: Failed to load device unit: Invalid argument
    systemd[1]: Failed to process udev device event: Invalid argument

diff --git a/src/core/device.c b/src/core/device.c
index fb94868..734d3f3 100644
--- a/src/core/device.c
+++ b/src/core/device.c
@@ -312,6 +312,7 @@ fail:
 static int device_process_new_device(Manager *m, struct udev_device *dev, bool update_state) {
         const char *sysfs, *dn;
         struct udev_list_entry *item = NULL, *first = NULL;
+        int r;
 
         assert(m);
 
@@ -319,7 +320,9 @@ static int device_process_new_device(Manager *m, struct udev_device *dev, bool u
                 return -ENOMEM;
 
         /* Add the main unit named after the sysfs path */
-        device_update_unit(m, dev, sysfs, true);
+        r = device_update_unit(m, dev, sysfs, true);
+        if (r < 0)
+                return r;
 
         /* Add an additional unit for the device node */
         if ((dn = udev_device_get_devnode(dev)))



More information about the systemd-commits mailing list