Fix: sessiond: leak of application socket on chmod failure
[lttng-tools.git] / src / bin / lttng-sessiond / register.c
index 6ce25ad0f66a1f9af143b73e3937693d444bf334..ecb0dfef07457e1ca68aa76d749ed9981cbf4c10 100644 (file)
@@ -72,7 +72,7 @@ static int create_application_socket(void)
        if (ret < 0) {
                PERROR("Set file permissions failed on %s",
                                config.apps_unix_sock_path.value);
-               goto end;
+               goto error_close_socket;
        }
 
        DBG3("Session daemon application socket created (fd = %d) ", apps_sock);
@@ -80,6 +80,13 @@ static int create_application_socket(void)
 end:
        umask(old_umask);
        return ret;
+error_close_socket:
+       if (close(apps_sock)) {
+               PERROR("Failed to close application socket in error path");
+       }
+       apps_sock = -1;
+       ret = -1;
+       goto end;
 }
 
 /*
@@ -239,11 +246,6 @@ static void *thread_application_registration(void *data)
                        revents = LTTNG_POLL_GETEV(&events, i);
                        pollfd = LTTNG_POLL_GETFD(&events, i);
 
-                       if (!revents) {
-                               /* No activity for this FD (poll implementation). */
-                               continue;
-                       }
-
                        /* Thread quit pipe has been closed. Killing thread. */
                        if (pollfd == quit_pipe_read_fd) {
                                err = 0;
This page took 0.023982 seconds and 4 git commands to generate.