From c9d5c9c0e19eea79ca0f09fe58e5c0b76b8001e2 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 28 Nov 2016 19:41:20 +0100 Subject: [PATCH] core: make unit_free() accept NULL pointers We generally try to make our destructors robust regarding NULL pointers, much in the same way as glibc's free(). Do this also for unit_free(). Follow-up for #4748. --- src/core/device.c | 2 +- src/core/mount.c | 2 +- src/core/swap.c | 2 +- src/core/unit.c | 3 ++- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/core/device.c b/src/core/device.c index 8e2e3c7bedc..074e93ffe2e 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 && u) + if (delete) unit_free(u); return r; diff --git a/src/core/mount.c b/src/core/mount.c index 1c2be28d55d..0c4d061c276 100644 --- a/src/core/mount.c +++ b/src/core/mount.c @@ -1509,7 +1509,7 @@ static int mount_setup_unit( fail: log_warning_errno(r, "Failed to set up mount unit: %m"); - if (delete && u) + if (delete) unit_free(u); return r; diff --git a/src/core/swap.c b/src/core/swap.c index bf404db8c30..e9468e105ca 100644 --- a/src/core/swap.c +++ b/src/core/swap.c @@ -420,7 +420,7 @@ static int swap_setup_unit( fail: log_unit_warning_errno(u, r, "Failed to load swap unit: %m"); - if (delete && u) + if (delete) unit_free(u); return r; diff --git a/src/core/unit.c b/src/core/unit.c index cba6342ecaa..e485c01fc10 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -516,7 +516,8 @@ void unit_free(Unit *u) { Iterator i; char *t; - assert(u); + if (!u) + return; if (u->transient_file) fclose(u->transient_file);