summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TODO2
-rw-r--r--src/condition.c4
-rw-r--r--src/dbus-manager.c8
-rw-r--r--src/dbus-unit.c4
-rw-r--r--src/dbus.c6
-rw-r--r--src/execute.c2
-rw-r--r--src/manager.c2
-rw-r--r--src/modules-load.c8
-rw-r--r--src/mount.c1
-rw-r--r--src/readahead-replay.c3
-rw-r--r--src/service.c5
-rw-r--r--src/shutdownd.c2
-rw-r--r--src/socket.c2
-rw-r--r--src/strv.c6
-rw-r--r--src/swap.c1
-rw-r--r--src/unit.c3
-rw-r--r--src/util.c1
17 files changed, 39 insertions, 21 deletions
diff --git a/TODO b/TODO
index aa4c37f3c9..c8e964a688 100644
--- a/TODO
+++ b/TODO
@@ -27,6 +27,8 @@ F15:
* ply should do mkdir before writing pid file
+* ConditionDirectoryNotEmpty= needs to be documented
+
Features:
* teach dbus to activate all services it finds in /etc/systemd/services/org-*.service
diff --git a/src/condition.c b/src/condition.c
index 61812c2570..b404b49c92 100644
--- a/src/condition.c
+++ b/src/condition.c
@@ -30,7 +30,9 @@
Condition* condition_new(ConditionType type, const char *parameter, bool trigger, bool negate) {
Condition *c;
- c = new0(Condition, 1);
+ if (!(c = new0(Condition, 1)))
+ return NULL;
+
c->type = type;
c->trigger = trigger;
c->negate = negate;
diff --git a/src/dbus-manager.c b/src/dbus-manager.c
index 92a602219b..2f755bcc64 100644
--- a/src/dbus-manager.c
+++ b/src/dbus-manager.c
@@ -1020,8 +1020,10 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection,
if (!e)
goto oom;
- if (!(reply = dbus_message_new_method_return(message)))
+ if (!(reply = dbus_message_new_method_return(message))) {
+ strv_free(e);
goto oom;
+ }
strv_free(m->environment);
m->environment = e;
@@ -1108,8 +1110,6 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection,
goto oom;
}
- free(path);
-
if (reply) {
if (!dbus_connection_send(connection, reply, NULL))
goto oom;
@@ -1117,6 +1117,8 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection,
dbus_message_unref(reply);
}
+ free(path);
+
return DBUS_HANDLER_RESULT_HANDLED;
oom:
diff --git a/src/dbus-unit.c b/src/dbus-unit.c
index 563ef7079a..b5daa66b5d 100644
--- a/src/dbus-unit.c
+++ b/src/dbus-unit.c
@@ -455,8 +455,6 @@ static DBusHandlerResult bus_unit_message_dispatch(Unit *u, DBusConnection *conn
goto oom;
}
- free(path);
-
if (reply) {
if (!dbus_connection_send(connection, reply, NULL))
goto oom;
@@ -464,6 +462,8 @@ static DBusHandlerResult bus_unit_message_dispatch(Unit *u, DBusConnection *conn
dbus_message_unref(reply);
}
+ free(path);
+
return DBUS_HANDLER_RESULT_HANDLED;
oom:
diff --git a/src/dbus.c b/src/dbus.c
index 31b1ce6ee0..6f43c4108e 100644
--- a/src/dbus.c
+++ b/src/dbus.c
@@ -176,8 +176,8 @@ static dbus_bool_t bus_add_watch(DBusWatch *bus_watch, void *data) {
}
if (epoll_ctl(m->epoll_fd, EPOLL_CTL_ADD, w->fd, &ev) < 0) {
- free(w);
close_nointr_nofail(w->fd);
+ free(w);
return FALSE;
}
@@ -236,7 +236,7 @@ static int bus_timeout_arm(Manager *m, Watch *w) {
if (dbus_timeout_get_enabled(w->data.bus_timeout)) {
timespec_store(&its.it_value, dbus_timeout_get_interval(w->data.bus_timeout) * USEC_PER_MSEC);
- its.it_interval = its.it_interval;
+ its.it_interval = its.it_value;
}
if (timerfd_settime(w->fd, 0, &its, NULL) < 0)
@@ -269,7 +269,7 @@ static dbus_bool_t bus_add_timeout(DBusTimeout *timeout, void *data) {
if (!(w = new0(Watch, 1)))
return FALSE;
- if (!(w->fd = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK|TFD_CLOEXEC)) < 0)
+ if ((w->fd = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK|TFD_CLOEXEC)) < 0)
goto fail;
w->type = WATCH_DBUS_TIMEOUT;
diff --git a/src/execute.c b/src/execute.c
index cd44640a53..b7ae522692 100644
--- a/src/execute.c
+++ b/src/execute.c
@@ -646,7 +646,7 @@ static int enforce_groups(const ExecContext *context, const char *username, gid_
char **i;
/* Final step, initialize any manually set supplementary groups */
- ngroups_max = (int) sysconf(_SC_NGROUPS_MAX);
+ assert_se((ngroups_max = (int) sysconf(_SC_NGROUPS_MAX)) > 0);
if (!(gids = new(gid_t, ngroups_max)))
return -ENOMEM;
diff --git a/src/manager.c b/src/manager.c
index fdb5beda21..dae746cae5 100644
--- a/src/manager.c
+++ b/src/manager.c
@@ -2615,7 +2615,7 @@ int manager_open_serialization(Manager *m, FILE **_f) {
log_debug("Serializing state to %s", path);
free(path);
- if (!(f = fdopen(fd, "w+")) < 0)
+ if (!(f = fdopen(fd, "w+")))
return -errno;
*_f = f;
diff --git a/src/modules-load.c b/src/modules-load.c
index 2dd432695f..3824b57de7 100644
--- a/src/modules-load.c
+++ b/src/modules-load.c
@@ -99,17 +99,21 @@ int main(int argc, char *argv[]) {
}
f = fopen(fn, "re");
- free(fn);
if (!f) {
- if (errno == ENOENT)
+ if (errno == ENOENT) {
+ free(fn);
continue;
+ }
log_error("Failed to open %s: %m", fn);
+ free(fn);
r = EXIT_FAILURE;
continue;
}
+ free(fn);
+
for (;;) {
char line[LINE_MAX], *l, *t;
diff --git a/src/mount.c b/src/mount.c
index 209e19c175..2d8542d9df 100644
--- a/src/mount.c
+++ b/src/mount.c
@@ -785,6 +785,7 @@ static void mount_enter_signal(Mount *m, MountState state, bool success) {
wait_for_exit = true;
set_free(pid_set);
+ pid_set = NULL;
}
}
diff --git a/src/readahead-replay.c b/src/readahead-replay.c
index fee2171dd2..0b84528b0e 100644
--- a/src/readahead-replay.c
+++ b/src/readahead-replay.c
@@ -122,7 +122,8 @@ static int replay(const char *root) {
FILE *pack = NULL;
char line[LINE_MAX];
int r = 0;
- char *pack_fn = NULL, c;
+ char *pack_fn = NULL;
+ int c;
bool on_ssd, ready = false;
int prio;
int inotify_fd = -1;
diff --git a/src/service.c b/src/service.c
index c74e8a009f..728ca0b018 100644
--- a/src/service.c
+++ b/src/service.c
@@ -406,7 +406,7 @@ static int sysv_fix_order(Service *s) {
/* FIXME: Maybe we should compare the name here lexicographically? */
- if (!(r = unit_add_dependency(UNIT(s), d, UNIT(t), true)) < 0)
+ if ((r = unit_add_dependency(UNIT(s), d, UNIT(t), true)) < 0)
return r;
}
@@ -1024,7 +1024,7 @@ static int fsck_fix_order(Service *s) {
else
continue;
- if (!(r = unit_add_dependency(UNIT(s), d, UNIT(t), true)) < 0)
+ if ((r = unit_add_dependency(UNIT(s), d, UNIT(t), true)) < 0)
return r;
}
@@ -1882,6 +1882,7 @@ static void service_enter_signal(Service *s, ServiceState state, bool success) {
wait_for_exit = true;
set_free(pid_set);
+ pid_set = NULL;
}
}
diff --git a/src/shutdownd.c b/src/shutdownd.c
index 143fa8d825..6b92ceeb1e 100644
--- a/src/shutdownd.c
+++ b/src/shutdownd.c
@@ -227,7 +227,7 @@ int main(int argc, char *argv[]) {
if ((pollfd[i].fd = timerfd_create(CLOCK_REALTIME, TFD_NONBLOCK|TFD_CLOEXEC)) < 0) {
log_error("timerfd_create(): %m");
- failed = false;
+ failed = true;
}
}
diff --git a/src/socket.c b/src/socket.c
index 72be0e2235..beb328657f 100644
--- a/src/socket.c
+++ b/src/socket.c
@@ -1066,6 +1066,7 @@ static void socket_enter_signal(Socket *s, SocketState state, bool success) {
wait_for_exit = true;
set_free(pid_set);
+ pid_set = NULL;
}
}
@@ -1695,6 +1696,7 @@ static void socket_timer_event(Unit *u, uint64_t elapsed, Watch *w) {
case SOCKET_START_PRE:
log_warning("%s starting timed out. Terminating.", u->meta.id);
socket_enter_signal(s, SOCKET_FINAL_SIGTERM, false);
+ break;
case SOCKET_START_POST:
log_warning("%s starting timed out. Stopping.", u->meta.id);
diff --git a/src/strv.c b/src/strv.c
index c8ff5745e8..c5f8df06da 100644
--- a/src/strv.c
+++ b/src/strv.c
@@ -78,9 +78,11 @@ char **strv_copy(char **l) {
return r;
fail:
- for (k--, l--; k >= r; k--, l--)
+ for (k--; k >= r; k--)
free(*k);
+ free(r);
+
return NULL;
}
@@ -435,6 +437,8 @@ char **strv_env_merge(unsigned n_lists, ...) {
return r;
fail:
+ va_end(ap);
+
for (k--; k >= r; k--)
free(*k);
diff --git a/src/swap.c b/src/swap.c
index 66bf5c2bfb..c32f60810c 100644
--- a/src/swap.c
+++ b/src/swap.c
@@ -687,6 +687,7 @@ static void swap_enter_signal(Swap *s, SwapState state, bool success) {
wait_for_exit = true;
set_free(pid_set);
+ pid_set = NULL;
}
}
diff --git a/src/unit.c b/src/unit.c
index 4f83778c53..6fd4dc6cb0 100644
--- a/src/unit.c
+++ b/src/unit.c
@@ -2035,8 +2035,7 @@ char **unit_full_printf_strv(Unit *u, char **l) {
return r;
fail:
- j--;
- while (j >= r)
+ for (j--; j >= r; j--)
free(*j);
free(r);
diff --git a/src/util.c b/src/util.c
index a44fea09cf..5a5cdceab4 100644
--- a/src/util.c
+++ b/src/util.c
@@ -3582,7 +3582,6 @@ char *normalize_env_assignment(const char *s) {
free(p);
if (!value) {
- free(p);
free(name);
return NULL;
}