| From 9dd94c0ac4b29250e0c06f2bbd8e73cc2072da7d Mon Sep 17 00:00:00 2001 |
| From: Dave Reisner <d@falconindy.com> |
| Date: Sun, 27 Nov 2016 17:05:39 -0500 |
| Subject: [PATCH] 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 |
| (cherry picked from commit d112eae7da77899be245ab52aa1747d4675549f1) |
| --- |
| src/core/device.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/src/core/device.c b/src/core/device.c |
| index bd87a447cd..4b9e84aeb6 100644 |
| --- a/src/core/device.c |
| +++ b/src/core/device.c |
| @@ -365,7 +365,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; |