From: David Tardon Date: Fri, 21 Apr 2023 13:53:02 +0000 (+0200) Subject: logind-session-dbus: use _cleanup_ X-Git-Tag: v254-rc1~603^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F27424%2Fhead;p=thirdparty%2Fsystemd.git logind-session-dbus: use _cleanup_ --- diff --git a/src/login/logind-session-dbus.c b/src/login/logind-session-dbus.c index e3bebc9188b..bc7d8fdc1c6 100644 --- a/src/login/logind-session-dbus.c +++ b/src/login/logind-session-dbus.c @@ -424,7 +424,7 @@ static int method_set_display(sd_bus_message *message, void *userdata, sd_bus_er static int method_take_device(sd_bus_message *message, void *userdata, sd_bus_error *error) { Session *s = ASSERT_PTR(userdata); uint32_t major, minor; - SessionDevice *sd; + _cleanup_(session_device_freep) SessionDevice *sd = NULL; dev_t dev; int r; @@ -456,18 +456,16 @@ static int method_take_device(sd_bus_message *message, void *userdata, sd_bus_er r = session_device_save(sd); if (r < 0) - goto error; + return r; r = sd_bus_reply_method_return(message, "hb", sd->fd, !sd->active); if (r < 0) - goto error; + return r; session_save(s); - return 1; + TAKE_PTR(sd); -error: - session_device_free(sd); - return r; + return 1; } static int method_release_device(sd_bus_message *message, void *userdata, sd_bus_error *error) { diff --git a/src/login/logind-session-device.h b/src/login/logind-session-device.h index a606d84f0ef..04654d12524 100644 --- a/src/login/logind-session-device.h +++ b/src/login/logind-session-device.h @@ -29,6 +29,8 @@ struct SessionDevice { int session_device_new(Session *s, dev_t dev, bool open_device, SessionDevice **out); SessionDevice *session_device_free(SessionDevice *sd); +DEFINE_TRIVIAL_CLEANUP_FUNC(SessionDevice*, session_device_free); + void session_device_complete_pause(SessionDevice *sd); void session_device_resume_all(Session *s);