summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2013-10-11 19:33:43 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2013-10-13 17:56:54 -0400
commita3e7f417d72ba3251fd6b3a228a2721a4b725a03 (patch)
treed9747bb30dfb6d9bd54ddec31198aa6fb1da9703
parent6891529fe1176c046ece579807ff48e3191692f3 (diff)
bus: fix access to unitialized variable in error path
src/machine/machined-dbus.c:237:13: warning: Branch condition evaluates to a garbage value if (m) ^
-rw-r--r--src/libsystemd-bus/bus-message.c1
-rw-r--r--src/machine/machined-dbus.c18
2 files changed, 6 insertions, 13 deletions
diff --git a/src/libsystemd-bus/bus-message.c b/src/libsystemd-bus/bus-message.c
index 18c2d1c19d..bc67c32380 100644
--- a/src/libsystemd-bus/bus-message.c
+++ b/src/libsystemd-bus/bus-message.c
@@ -639,7 +639,6 @@ int sd_bus_message_new_method_errorf(
const char *format,
...) {
- _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL;
sd_bus_message *t;
va_list ap;
int r;
diff --git a/src/machine/machined-dbus.c b/src/machine/machined-dbus.c
index 22caadfceb..2b622d1793 100644
--- a/src/machine/machined-dbus.c
+++ b/src/machine/machined-dbus.c
@@ -203,7 +203,7 @@ static int bus_manager_create_machine(Manager *manager, DBusMessage *message) {
r = manager_add_machine(manager, name, &m);
if (r < 0)
- goto fail;
+ return r;
m->leader = leader;
m->class = c;
@@ -234,8 +234,7 @@ static int bus_manager_create_machine(Manager *manager, DBusMessage *message) {
return 0;
fail:
- if (m)
- machine_add_to_gc_queue(m);
+ machine_add_to_gc_queue(m);
return r;
}
@@ -1003,17 +1002,12 @@ int manager_add_machine(Manager *m, const char *name, Machine **_machine) {
assert(name);
machine = hashmap_get(m->machines, name);
- if (machine) {
- if (_machine)
- *_machine = machine;
-
- return 0;
+ if (!machine) {
+ machine = machine_new(m, name);
+ if (!machine)
+ return -ENOMEM;
}
- machine = machine_new(m, name);
- if (!machine)
- return -ENOMEM;
-
if (_machine)
*_machine = machine;