[systemd-devel] [PATCH V2] core/device.c: fix possible segfault
harald at redhat.com
harald at redhat.com
Fri Apr 12 06:05:19 PDT 2013
From: Harald Hoyer <harald at redhat.com>
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
---
V2: Now checking for (r < 0) rather than (r).
src/core/device.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
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)))
--
1.8.2
More information about the systemd-devel
mailing list