diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/login/inhibit.c | 21 | ||||
-rw-r--r-- | src/shared/dbus-common.c | 11 |
2 files changed, 16 insertions, 16 deletions
diff --git a/src/login/inhibit.c b/src/login/inhibit.c index 62a8223e63..08a4701161 100644 --- a/src/login/inhibit.c +++ b/src/login/inhibit.c @@ -43,9 +43,9 @@ static enum { static int inhibit(DBusConnection *bus, DBusError *error) { DBusMessage *reply = NULL; - int fd; + int r; - fd = bus_method_call_with_reply ( + r = bus_method_call_with_reply( bus, "org.freedesktop.login1", "/org/freedesktop/login1", @@ -58,17 +58,17 @@ static int inhibit(DBusConnection *bus, DBusError *error) { DBUS_TYPE_STRING, &arg_why, DBUS_TYPE_STRING, &arg_mode, DBUS_TYPE_INVALID); - if (fd) - return fd; + if (r < 0) + return r; if (!dbus_message_get_args(reply, error, - DBUS_TYPE_UNIX_FD, &fd, + DBUS_TYPE_UNIX_FD, &r, DBUS_TYPE_INVALID)) - fd = -EIO; + r = -EIO; dbus_message_unref(reply); - return fd; + return r; } static int print_inhibitors(DBusConnection *bus, DBusError *error) { @@ -77,7 +77,7 @@ static int print_inhibitors(DBusConnection *bus, DBusError *error) { DBusMessageIter iter, sub, sub2; int r; - r = bus_method_call_with_reply ( + r = bus_method_call_with_reply( bus, "org.freedesktop.login1", "/org/freedesktop/login1", @@ -86,10 +86,8 @@ static int print_inhibitors(DBusConnection *bus, DBusError *error) { &reply, NULL, DBUS_TYPE_INVALID); - if (r) { - r = -ENOMEM; + if (r < 0) goto finish; - } if (!dbus_message_iter_init(reply, &iter)) { r = -ENOMEM; @@ -110,7 +108,6 @@ static int print_inhibitors(DBusConnection *bus, DBusError *error) { "UID", "PID"); - while (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_INVALID) { const char *what, *who, *why, *mode; char *ewho, *ewhy; diff --git a/src/shared/dbus-common.c b/src/shared/dbus-common.c index 8d7c4620ce..bcbef77b53 100644 --- a/src/shared/dbus-common.c +++ b/src/shared/dbus-common.c @@ -1278,14 +1278,12 @@ int bus_method_call_with_reply(DBusConnection *bus, va_start(ap, first_arg_type); if (!dbus_message_append_args_valist(m, first_arg_type, ap)) { va_end(ap); - dbus_message_unref(m); r = log_oom(); goto finish; } va_end(ap); reply = dbus_connection_send_with_reply_and_block(bus, m, -1, &error); - dbus_message_unref(m); if (!reply) { if (!return_error) log_error("Failed to issue method call: %s", bus_error_message(&error)); @@ -1299,13 +1297,18 @@ int bus_method_call_with_reply(DBusConnection *bus, r = -EIO; goto finish; } + if (return_reply) *return_reply = reply; else dbus_message_unref(reply); + finish: - if(return_error) - *return_error=error; + if (m) + dbus_message_unref(m); + + if (return_error) + *return_error = error; else dbus_error_free(&error); |