]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core: free_and_strdup() FTW!
authorLennart Poettering <lennart@poettering.net>
Tue, 26 Sep 2017 20:49:23 +0000 (22:49 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 27 Sep 2017 16:26:18 +0000 (18:26 +0200)
src/core/unit.c

index 7ca08af291b339c527637ca77d4660068b2a1771..c31ddd771e7cceedec3eeeb11177866a11417b8c 100644 (file)
@@ -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;
 }