login: use free_and_replace() and TAKE_PTR()

This commit is contained in:
Yu Watanabe 2018-08-07 10:10:12 +09:00
parent 73e47c42ab
commit fb2367edd9
2 changed files with 13 additions and 24 deletions

View File

@ -547,7 +547,8 @@ static int session_start_scope(Session *s, sd_bus_message *properties) {
if (!s->scope) { if (!s->scope) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL; _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; const char *description;
scope = strjoin("session-", s->id, ".scope"); scope = strjoin("session-", s->id, ".scope");
@ -567,16 +568,12 @@ static int session_start_scope(Session *s, sd_bus_message *properties) {
properties, properties,
&error, &error,
&job); &job);
if (r < 0) { if (r < 0)
log_error_errno(r, "Failed to start session scope %s: %s", scope, bus_error_message(&error, r)); return 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;
free(s->scope_job);
s->scope_job = job; s->scope = TAKE_PTR(scope);
} free_and_replace(s->scope_job, job);
} }
if (s->scope) if (s->scope)

View File

@ -391,15 +391,10 @@ static int user_stop_slice(User *u) {
assert(u); assert(u);
r = manager_stop_unit(u->manager, u->slice, &error, &job); r = manager_stop_unit(u->manager, u->slice, &error, &job);
if (r < 0) { if (r < 0)
log_error("Failed to stop user slice: %s", bus_error_message(&error, r)); return log_error_errno(r, "Failed to stop user slice: %s", bus_error_message(&error, r));
return r;
}
free(u->slice_job); return free_and_replace(u->slice_job, job);
u->slice_job = job;
return r;
} }
static int user_stop_service(User *u) { static int user_stop_service(User *u) {
@ -410,13 +405,10 @@ static int user_stop_service(User *u) {
assert(u); assert(u);
r = manager_stop_unit(u->manager, u->service, &error, &job); r = manager_stop_unit(u->manager, u->service, &error, &job);
if (r < 0) { if (r < 0)
log_error("Failed to stop user service: %s", bus_error_message(&error, r)); return log_error_errno(r, "Failed to stop user service: %s", bus_error_message(&error, r));
return r;
}
free_and_replace(u->service_job, job); return free_and_replace(u->service_job, job);
return r;
} }
int user_stop(User *u, bool force) { int user_stop(User *u, bool force) {