diff options
-rw-r--r-- | src/basic/strv.c | 2 | ||||
-rw-r--r-- | src/core/service.c | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/basic/strv.c b/src/basic/strv.c index d5169467da..9fe3b5dfff 100644 --- a/src/basic/strv.c +++ b/src/basic/strv.c @@ -780,7 +780,7 @@ int strv_extend_n(char ***l, const char *value, size_t n) { return 0; rollback: - for (j = k; j < i; i++) + for (j = k; j < i; j++) free(nl[j]); nl[k] = NULL; diff --git a/src/core/service.c b/src/core/service.c index 8c339765a4..ce3b81398d 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -363,8 +363,10 @@ static int service_add_fd_store(Service *s, int fd, const char *name) { fs->fd = fd; fs->service = s; fs->fdname = strdup(name ?: "stored"); - if (!fs->fdname) + if (!fs->fdname) { + free(fs); return -ENOMEM; + } r = sd_event_add_io(UNIT(s)->manager->event, &fs->event_source, fd, 0, on_fd_store_io, fs); if (r < 0) { |