From: Dave Reisner Date: Sun, 27 Nov 2016 22:05:39 +0000 (-0500) Subject: device: Avoid calling unit_free(NULL) in device setup logic (#4748) X-Git-Tag: v233~385 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d112eae7da77899be245ab52aa1747d4675549f1;p=thirdparty%2Fsystemd.git device: Avoid calling unit_free(NULL) in device setup logic (#4748) Since a581e45ae8f9bb5c, there's a few function calls to unit_new_for_name which will unit_free on failure. Prior to this commit, a failure would result in calling unit_free with a NULL unit, and hit an assertion failure, seen at least via device_setup_unit: Assertion 'u' failed at src/core/unit.c:519, function unit_free(). Aborting. Fixes #4747 https://bugs.archlinux.org/task/51950 --- diff --git a/src/core/device.c b/src/core/device.c index 074e93ffe2e..8e2e3c7bedc 100644 --- a/src/core/device.c +++ b/src/core/device.c @@ -359,7 +359,7 @@ static int device_setup_unit(Manager *m, struct udev_device *dev, const char *pa fail: log_unit_warning_errno(u, r, "Failed to set up device unit: %m"); - if (delete) + if (delete && u) unit_free(u); return r;