summaryrefslogtreecommitdiff
path: root/src/login
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2018-08-07 10:10:12 +0900
committerSven Eden <sven.eden@prydeworx.com>2018-10-29 10:18:35 +0100
commit8a61e34d01100a359e1cf36f0cde52c39cfdbb2e (patch)
tree5b6c5718b2d5e37f73bb202981b8b6b076d3b967 /src/login
parent76539125582a999922632f4fb9718d7def8987c0 (diff)
login: use free_and_replace() and TAKE_PTR()
(cherry picked from commit fb2367edd943d37f418725c90498a940016e80bd)
Diffstat (limited to 'src/login')
-rw-r--r--src/login/logind-session.c17
-rw-r--r--src/login/logind-user.c6
2 files changed, 13 insertions, 10 deletions
diff --git a/src/login/logind-session.c b/src/login/logind-session.c
index 05b79685a..45b25aab0 100644
--- a/src/login/logind-session.c
+++ b/src/login/logind-session.c
@@ -579,7 +579,8 @@ static int session_start_scope(Session *s, sd_bus_message *properties) {
if (!s->scope) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
- char *scope, *job = NULL;
+ _cleanup_free_ char *scope = NULL;
+ char *job = NULL;
const char *description;
scope = strjoin("session-", s->id, ".scope");
@@ -599,16 +600,12 @@ static int session_start_scope(Session *s, sd_bus_message *properties) {
properties,
&error,
&job);
- if (r < 0) {
- log_error_errno(r, "Failed to start session scope %s: %s", scope, bus_error_message(&error, r));
- free(scope);
- return r;
- } else {
- s->scope = scope;
+ if (r < 0)
+ return log_error_errno(r, "Failed to start session scope %s: %s", scope, bus_error_message(&error, r));
- free(s->scope_job);
- s->scope_job = job;
- }
+
+ s->scope = TAKE_PTR(scope);
+ free_and_replace(s->scope_job, job);
}
if (s->scope)
diff --git a/src/login/logind-user.c b/src/login/logind-user.c
index 9285ed0b2..42be9fa2d 100644
--- a/src/login/logind-user.c
+++ b/src/login/logind-user.c
@@ -421,8 +421,11 @@ static int user_stop_slice(User *u) {
free(u->slice_job);
u->slice_job = job;
+ if (r < 0)
+ return log_error_errno(r, "Failed to stop user slice: %s", bus_error_message(&error, r));
return r;
+ return free_and_replace(u->slice_job, job);
}
static int user_stop_service(User *u) {
@@ -437,9 +440,12 @@ static int user_stop_service(User *u) {
log_error("Failed to stop user service: %s", bus_error_message(&error, r));
return r;
}
+ if (r < 0)
+ return log_error_errno(r, "Failed to stop user service: %s", bus_error_message(&error, r));
free_and_replace(u->service_job, job);
return r;
+ return free_and_replace(u->service_job, job);
}
#endif // 0