device: Avoid calling unit_free(NULL) in device setup logic (#4748)

Since a581e45ae8, 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
This commit is contained in:
Dave Reisner
2016-11-27 17:05:39 -05:00
committed by Martin Pitt
parent a748a0169a
commit d112eae7da

View File

@@ -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;