From 84b26d5149e227af14126eee744bfd6dae7afb35 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 26 Sep 2017 22:49:23 +0200 Subject: [PATCH] core: free_and_strdup() FTW! --- src/core/unit.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/src/core/unit.c b/src/core/unit.c index 7ca08af291b..c31ddd771e7 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -314,22 +314,16 @@ int unit_choose_id(Unit *u, const char *name) { } int unit_set_description(Unit *u, const char *description) { - char *s; + int r; assert(u); - if (isempty(description)) - s = NULL; - else { - s = strdup(description); - if (!s) - return -ENOMEM; - } - - free(u->description); - u->description = s; + r = free_and_strdup(&u->description, empty_to_null(description)); + if (r < 0) + return r; + if (r > 0) + unit_add_to_dbus_queue(u); - unit_add_to_dbus_queue(u); return 0; } -- 2.47.3