chiark / gitweb /
bus: use free_and_strdup()
[elogind.git] / src / libelogind / sd-bus / bus-util.c
index 4bc16aa906683a46c53f64403415034367bdf29f..78ef289eb13b727ee7be49a2c22b019ff8dce090 100644 (file)
@@ -958,7 +958,6 @@ static int map_basic(sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_
         switch (type) {
         case SD_BUS_TYPE_STRING: {
                 const char *s;
-                char *str;
                 char **p = userdata;
 
                 r = sd_bus_message_read_basic(m, type, &s);
@@ -968,14 +967,7 @@ static int map_basic(sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_
                 if (isempty(s))
                         break;
 
-                str = strdup(s);
-                if (!str) {
-                        r = -ENOMEM;
-                        break;
-                }
-                free(*p);
-                *p = str;
-
+                r = free_and_strdup(p, s);
                 break;
         }