X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flogin%2Flogind-seat-dbus.c;h=230f7f082a21619f17d437f08dc519ab352d2b8c;hp=585e0c15c33feed5c6d343ed687b5252ed077fb6;hb=1ca208fb4f93e5869704af1812cbff7130a2fc03;hpb=ce0fc5f5f6debc6e37ac3ab0a3ea1c9c35b3ed99 diff --git a/src/login/logind-seat-dbus.c b/src/login/logind-seat-dbus.c index 585e0c15c..230f7f082 100644 --- a/src/login/logind-seat-dbus.c +++ b/src/login/logind-seat-dbus.c @@ -61,7 +61,7 @@ static int bus_seat_append_active(DBusMessageIter *i, const char *property, void DBusMessageIter sub; Seat *s = data; const char *id, *path; - char *p = NULL; + _cleanup_free_ char *p = NULL; assert(i); assert(property); @@ -82,12 +82,8 @@ static int bus_seat_append_active(DBusMessageIter *i, const char *property, void } 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; @@ -108,7 +104,7 @@ static int bus_seat_append_sessions(DBusMessageIter *i, const char *property, vo return -ENOMEM; LIST_FOREACH(sessions_by_seat, session, s->sessions) { - char *p; + _cleanup_free_ char *p = NULL; if (!dbus_message_iter_open_container(&sub, DBUS_TYPE_STRUCT, NULL, &sub2)) return -ENOMEM; @@ -118,12 +114,8 @@ static int bus_seat_append_sessions(DBusMessageIter *i, const char *property, vo return -ENOMEM; if (!dbus_message_iter_append_basic(&sub2, DBUS_TYPE_STRING, &session->id) || - !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_OBJECT_PATH, &p)) { - free(p); + !dbus_message_iter_append_basic(&sub2, DBUS_TYPE_OBJECT_PATH, &p)) return -ENOMEM; - } - - free(p); if (!dbus_message_iter_close_container(&sub, &sub2)) return -ENOMEM; @@ -217,8 +209,8 @@ static int bus_seat_append_idle_hint_since(DBusMessageIter *i, const char *prope } static int get_seat_for_path(Manager *m, const char *path, Seat **_s) { + _cleanup_free_ char *id = NULL; Seat *s; - char *id; assert(m); assert(path); @@ -232,8 +224,6 @@ static int get_seat_for_path(Manager *m, const char *path, Seat **_s) { return -ENOMEM; s = hashmap_get(m->seats, id); - free(id); - if (!s) return -ENOENT; @@ -356,7 +346,7 @@ const DBusObjectPathVTable bus_seat_vtable = { }; char *seat_bus_path(Seat *s) { - char *t, *r; + _cleanup_free_ char *t = NULL; assert(s); @@ -364,15 +354,11 @@ char *seat_bus_path(Seat *s) { if (!t) return NULL; - r = strappend("/org/freedesktop/login1/seat/", t); - free(t); - - return r; + return strappend("/org/freedesktop/login1/seat/", t); } int seat_send_signal(Seat *s, bool new_seat) { _cleanup_dbus_message_unref_ DBusMessage *m = NULL; - int r = -ENOMEM; _cleanup_free_ char *p = NULL; assert(s); @@ -380,33 +366,28 @@ int seat_send_signal(Seat *s, bool new_seat) { m = dbus_message_new_signal("/org/freedesktop/login1", "org.freedesktop.login1.Manager", new_seat ? "SeatNew" : "SeatRemoved"); - if (!m) return -ENOMEM; p = seat_bus_path(s); if (!p) - goto finish; + return -ENOMEM; if (!dbus_message_append_args( m, DBUS_TYPE_STRING, &s->id, DBUS_TYPE_OBJECT_PATH, &p, DBUS_TYPE_INVALID)) - goto finish; + return -ENOMEM; if (!dbus_connection_send(s->manager->bus, m, NULL)) - goto finish; - - r = 0; + return -ENOMEM; -finish: - return r; + return 0; } int seat_send_changed(Seat *s, const char *properties) { _cleanup_dbus_message_unref_ DBusMessage *m = NULL; - int r = -ENOMEM; _cleanup_free_ char *p = NULL; assert(s); @@ -420,13 +401,10 @@ int seat_send_changed(Seat *s, const char *properties) { m = bus_properties_changed_new(p, "org.freedesktop.login1.Seat", properties); if (!m) - goto finish; + return -ENOMEM; if (!dbus_connection_send(s->manager->bus, m, NULL)) - goto finish; - - r = 0; + return -ENOMEM; -finish: - return r; + return 0; }