[systemd-commits] src/condition.c src/dbus.c src/dbus-manager.c src/dbus-unit.c src/execute.c src/manager.c src/modules-load.c src/mount.c src/readahead-replay.c src/service.c src/shutdownd.c src/socket.c src/strv.c src/swap.c src/unit.c src/util.c TODO
Lennart Poettering
lennart at kemper.freedesktop.org
Thu Mar 31 06:35:50 PDT 2011
TODO | 2 ++
src/condition.c | 4 +++-
src/dbus-manager.c | 8 +++++---
src/dbus-unit.c | 4 ++--
src/dbus.c | 6 +++---
src/execute.c | 2 +-
src/manager.c | 2 +-
src/modules-load.c | 8 ++++++--
src/mount.c | 1 +
src/readahead-replay.c | 3 ++-
src/service.c | 5 +++--
src/shutdownd.c | 2 +-
src/socket.c | 2 ++
src/strv.c | 6 +++++-
src/swap.c | 1 +
src/unit.c | 3 +--
src/util.c | 1 -
17 files changed, 39 insertions(+), 21 deletions(-)
New commits:
commit da19d5c19f60ec80e1733b1e994311c59c6eda73
Author: Lennart Poettering <lennart at poettering.net>
Date: Thu Mar 31 15:35:40 2011 +0200
src: our lord is coverity
diff --git a/TODO b/TODO
index aa4c37f..c8e964a 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 61812c2..b404b49 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 92a6022..2f755bc 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 563ef70..b5daa66 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 31b1ce6..6f43c41 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 cd44640..b7ae522 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 fdb5bed..dae746c 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 2dd4326..3824b57 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 209e19c..2d8542d 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 fee2171..0b84528 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 c74e8a0..728ca0b 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 143fa8d..6b92cee 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 72be0e2..beb3286 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 c8ff574..c5f8df0 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 66bf5c2..c32f608 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 4f83778..6fd4dc6 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 a44fea0..5a5cdce 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;
}
More information about the systemd-commits
mailing list