X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshared%2Fdbus-common.c;h=bcbef77b53411d2739874145b275d38470f62c56;hb=3137e0bd5290fea67e52cfe7ff657c3af400b548;hp=da2dc2e983a06c734616fc87b614ccef5617f986;hpb=c516c8d17f77a1c761447f4c40c8dfffeda2e06d;p=elogind.git diff --git a/src/shared/dbus-common.c b/src/shared/dbus-common.c index da2dc2e98..bcbef77b5 100644 --- a/src/shared/dbus-common.c +++ b/src/shared/dbus-common.c @@ -121,7 +121,7 @@ int bus_connect(DBusBusType t, DBusConnection **_bus, bool *_private, DBusError * try via XDG_RUNTIME_DIR first, then * fallback to normal bus access */ - e = getenv("XDG_RUNTIME_DIR"); + e = __secure_getenv("XDG_RUNTIME_DIR"); if (e) { char *p; @@ -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);