chiark / gitweb /
bus: use free_and_strdup()
authorDavid Herrmann <dh.herrmann@gmail.com>
Tue, 7 Apr 2015 13:20:54 +0000 (15:20 +0200)
committerSven Eden <yamakuzure@gmx.net>
Tue, 14 Mar 2017 06:51:45 +0000 (07:51 +0100)
Save some LOCs by replacing strdup()+error-handling+free+assign with
free_and_strdup().

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;
         }