From 2c07315225bef6be4830bce25a74da7f0ba4fcdc Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Sat, 7 Mar 2015 14:01:45 -0500 Subject: machine: do not rely on asprintf setting arg on error Strictly speaking, the output variable is undefined if asprintf fails. We use the return value not the arg everywhere, and should we do here. --- src/machine/machine-dbus.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/machine/machine-dbus.c') diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c index 9e78a678ef..d6b8c90090 100644 --- a/src/machine/machine-dbus.c +++ b/src/machine/machine-dbus.c @@ -471,6 +471,7 @@ int bus_machine_method_open_login(sd_bus *bus, sd_bus_message *message, void *us _cleanup_close_ int master = -1; Machine *m = userdata; const char *p; + char *address; int r; if (m->class != MACHINE_CONTAINER) @@ -509,13 +510,14 @@ int bus_machine_method_open_login(sd_bus *bus, sd_bus_message *message, void *us return r; #ifdef ENABLE_KDBUS - asprintf(&container_bus->address, "x-machine-kernel:pid=" PID_FMT ";x-machine-unix:pid=" PID_FMT, m->leader, m->leader); +# define ADDRESS_FMT "x-machine-kernel:pid=%1$" PID_PRI ";x-machine-unix:pid=%1$" PID_PRI #else - asprintf(&container_bus->address, "x-machine-unix:pid=" PID_FMT, m->leader); +# define ADDRESS_FMT "x-machine-unix:pid=%1$" PID_PRI #endif - if (!container_bus->address) + if (asprintf(&address, ADDRESS_FMT, m->leader) < 0) return log_oom(); + container_bus->address = address; container_bus->bus_client = true; container_bus->trusted = false; container_bus->is_system = true; -- cgit v1.2.3-54-g00ecf