]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
login: use free_and_replace() and TAKE_PTR()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 7 Aug 2018 01:10:12 +0000 (10:10 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 7 Aug 2018 01:10:12 +0000 (10:10 +0900)
src/login/logind-session.c
src/login/logind-user.c

index 69d5a1031925168174eadb5b81efcdb22b2b9ce8..226cc49b0108c7a061baf70e933974d6f43e236a 100644 (file)
@@ -547,7 +547,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");
@@ -567,16 +568,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)
index 346f792fb8c748bb451f17e84a119939dbe28e51..f2664c323ea86367717bfb8a6035b7a3a6af16a8 100644 (file)
@@ -391,15 +391,10 @@ static int user_stop_slice(User *u) {
         assert(u);
 
         r = manager_stop_unit(u->manager, u->slice, &error, &job);
-        if (r < 0) {
-                log_error("Failed to stop user slice: %s", bus_error_message(&error, r));
-                return r;
-        }
-
-        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) {
@@ -410,13 +405,10 @@ static int user_stop_service(User *u) {
         assert(u);
 
         r = manager_stop_unit(u->manager, u->service, &error, &job);
-        if (r < 0) {
-                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);
 }
 
 int user_stop(User *u, bool force) {