chiark / gitweb /
bus: make bus_map_all_properties() call idempotent
authorKay Sievers <kay@vrfy.org>
Sat, 2 Nov 2013 01:35:23 +0000 (02:35 +0100)
committerKay Sievers <kay@vrfy.org>
Sat, 2 Nov 2013 01:38:39 +0000 (02:38 +0100)
src/libsystemd-bus/bus-util.c

index 857e0c16edb4be40f6a3383b34c98a8b0253256d..bb5dd29a5782c626cb9689e83225b7c32622d54b 100644 (file)
@@ -656,7 +656,7 @@ int bus_map_all_properties(sd_bus *bus,
                                 break;
 
                         for (i = 0; map[i].type; i++) {
-                                const char **p;
+                                char **p;
 
                                 if (!streq(map[i].type, "s"))
                                         continue;
@@ -664,6 +664,7 @@ int bus_map_all_properties(sd_bus *bus,
                                         continue;
 
                                 p = map[i].ptr;
+                                free(*p);
                                 *p = strdup(s);
                                 if (!*p) {
                                         r = -ENOMEM;