diff options
Diffstat (limited to 'src/login')
-rw-r--r-- | src/login/logind-seat-dbus.c | 6 | ||||
-rw-r--r-- | src/login/logind-session-dbus.c | 6 | ||||
-rw-r--r-- | src/login/logind-user-dbus.c | 6 |
3 files changed, 6 insertions, 12 deletions
diff --git a/src/login/logind-seat-dbus.c b/src/login/logind-seat-dbus.c index 26cddfea70..315e6baf6b 100644 --- a/src/login/logind-seat-dbus.c +++ b/src/login/logind-seat-dbus.c @@ -399,11 +399,9 @@ int seat_node_enumerator(sd_bus *bus, const char *path, void *userdata, char *** if (!p) return -ENOMEM; - r = strv_push(&l, p); - if (r < 0) { - free(p); + r = strv_consume(&l, p); + if (r < 0) return r; - } } *nodes = l; diff --git a/src/login/logind-session-dbus.c b/src/login/logind-session-dbus.c index f9305ddbee..fc728bb9d6 100644 --- a/src/login/logind-session-dbus.c +++ b/src/login/logind-session-dbus.c @@ -558,11 +558,9 @@ int session_node_enumerator(sd_bus *bus, const char *path, void *userdata, char if (!p) return -ENOMEM; - r = strv_push(&l, p); - if (r < 0) { - free(p); + r = strv_consume(&l, p); + if (r < 0) return r; - } } *nodes = l; diff --git a/src/login/logind-user-dbus.c b/src/login/logind-user-dbus.c index 18eea89701..b5d27e74de 100644 --- a/src/login/logind-user-dbus.c +++ b/src/login/logind-user-dbus.c @@ -315,11 +315,9 @@ int user_node_enumerator(sd_bus *bus, const char *path, void *userdata, char *** if (!p) return -ENOMEM; - r = strv_push(&l, p); - if (r < 0) { - free(p); + r = strv_consume(&l, p); + if (r < 0) return r; - } } *nodes = l; |