X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogin%2Flogind-session.c;h=a726fb1bedcae8cf195985109ef77094eb972257;hb=5af726cced7f87d6f7b7d6bd1dd5ee44ded5aa7b;hp=1fea4745b6d1a63b590ee3212dcd100711b9c166;hpb=405e0255d5e6950180d9563f1a26294b5360db03;p=elogind.git diff --git a/src/login/logind-session.c b/src/login/logind-session.c index 1fea4745b..a726fb1be 100644 --- a/src/login/logind-session.c +++ b/src/login/logind-session.c @@ -381,7 +381,8 @@ int session_activate(Session *s) { } static int session_link_x11_socket(Session *s) { - char *t, *f, *c; + _cleanup_free_ char *t = NULL, *f = NULL; + char *c; size_t k; assert(s); @@ -405,7 +406,6 @@ static int session_link_x11_socket(Session *s) { if (access(f, F_OK) < 0) { log_warning("Session %s has display %s with non-existing socket %s.", s->id, s->display, f); - free(f); return -ENOENT; } @@ -414,10 +414,8 @@ static int session_link_x11_socket(Session *s) { * path is owned by the user */ t = strappend(s->user->runtime_path, "/X11-display"); - if (!t) { - free(f); + if (!t) return log_oom(); - } if (link(f, t) < 0) { if (errno == EEXIST) { @@ -437,17 +435,12 @@ static int session_link_x11_socket(Session *s) { } log_error("Failed to link %s to %s: %m", f, t); - free(f); - free(t); return -errno; } } done: log_info("Linked %s to %s.", f, t); - free(f); - free(t); - s->user->display = s; return 0; @@ -480,7 +473,8 @@ static int session_start_scope(Session *s) { r = manager_start_scope(s->manager, scope, s->leader, s->user->slice, description, "systemd-user-sessions.service", kill_mode, &error, &job); if (r < 0) { - log_error("Failed to start session scope: %s %s", bus_error(&error, r), error.name); + log_error("Failed to start session scope %s: %s %s", + scope, bus_error(&error, r), error.name); dbus_error_free(&error); free(scope); @@ -584,7 +578,7 @@ static int session_stop_scope(Session *s) { } static int session_unlink_x11_socket(Session *s) { - char *t; + _cleanup_free_ char *t = NULL; int r; assert(s); @@ -600,8 +594,6 @@ static int session_unlink_x11_socket(Session *s) { return log_oom(); r = unlink(t); - free(t); - return r < 0 ? -errno : 0; }