X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flogin%2Flogind-user-dbus.c;h=8cc1dd49fde26500ad877a6a82ed13cdeb696137;hp=5951c38cb77d9bff0d30a294d2ebe84dbffd007d;hb=e8e581bf256b8c0fbd430935af79fa0e8ee570a1;hpb=c6a818c82035da91e7987920510f0dda61d8781a diff --git a/src/login/logind-user-dbus.c b/src/login/logind-user-dbus.c index 5951c38cb..8cc1dd49f 100644 --- a/src/login/logind-user-dbus.c +++ b/src/login/logind-user-dbus.c @@ -65,7 +65,7 @@ static int bus_user_append_display(DBusMessageIter *i, const char *property, voi DBusMessageIter sub; User *u = data; const char *id, *path; - char *p = NULL; + char _cleanup_free_ *p = NULL; assert(i); assert(property); @@ -86,12 +86,8 @@ static int bus_user_append_display(DBusMessageIter *i, const char *property, voi } if (!dbus_message_iter_append_basic(&sub, DBUS_TYPE_STRING, &id) || - !dbus_message_iter_append_basic(&sub, DBUS_TYPE_OBJECT_PATH, &path)) { - free(p); + !dbus_message_iter_append_basic(&sub, DBUS_TYPE_OBJECT_PATH, &path)) return -ENOMEM; - } - - free(p); if (!dbus_message_iter_close_container(i, &sub)) return -ENOMEM; @@ -191,7 +187,7 @@ static int bus_user_append_idle_hint_since(DBusMessageIter *i, const char *prope static int bus_user_append_default_cgroup(DBusMessageIter *i, const char *property, void *data) { User *u = data; - char *t; + char _cleanup_free_ *t = NULL; int r; bool success; @@ -204,8 +200,6 @@ static int bus_user_append_default_cgroup(DBusMessageIter *i, const char *proper return r; success = dbus_message_iter_append_basic(i, DBUS_TYPE_STRING, &t); - free(t); - return success ? 0 : -ENOMEM; } @@ -257,7 +251,7 @@ static DBusHandlerResult user_message_dispatch( DBusMessage *message) { DBusError error; - DBusMessage *reply = NULL; + _cleanup_dbus_message_unref_ DBusMessage *reply = NULL; int r; assert(u); @@ -306,16 +300,11 @@ static DBusHandlerResult user_message_dispatch( if (reply) { if (!bus_maybe_send_reply(connection, message, reply)) goto oom; - - dbus_message_unref(reply); } return DBUS_HANDLER_RESULT_HANDLED; oom: - if (reply) - dbus_message_unref(reply); - dbus_error_free(&error); return DBUS_HANDLER_RESULT_NEED_MEMORY; @@ -366,9 +355,8 @@ char *user_bus_path(User *u) { } int user_send_signal(User *u, bool new_user) { - DBusMessage *m; - int r = -ENOMEM; - char *p = NULL; + _cleanup_dbus_message_unref_ DBusMessage *m = NULL; + _cleanup_free_ char *p = NULL; uint32_t uid; assert(u); @@ -382,7 +370,7 @@ int user_send_signal(User *u, bool new_user) { p = user_bus_path(u); if (!p) - goto finish; + return -ENOMEM; uid = u->uid; @@ -391,24 +379,17 @@ int user_send_signal(User *u, bool new_user) { DBUS_TYPE_UINT32, &uid, DBUS_TYPE_OBJECT_PATH, &p, DBUS_TYPE_INVALID)) - goto finish; + return -ENOMEM; if (!dbus_connection_send(u->manager->bus, m, NULL)) - goto finish; - - r = 0; - -finish: - dbus_message_unref(m); - free(p); + return -ENOMEM; - return r; + return 0; } int user_send_changed(User *u, const char *properties) { - DBusMessage *m; - int r = -ENOMEM; - char *p = NULL; + _cleanup_dbus_message_unref_ DBusMessage *m = NULL; + _cleanup_free_ char *p = NULL; assert(u); @@ -421,17 +402,10 @@ int user_send_changed(User *u, const char *properties) { m = bus_properties_changed_new(p, "org.freedesktop.login1.User", properties); if (!m) - goto finish; + return -ENOMEM; if (!dbus_connection_send(u->manager->bus, m, NULL)) - goto finish; - - r = 0; - -finish: - if (m) - dbus_message_unref(m); - free(p); + return -ENOMEM; - return r; + return 0; }