X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fmain.c;h=06a09fbb93fe6f511d9678b4c20d68051763fb00;hb=392608a16520d50503e45d88bff7c4587459afa1;hp=7da7faba0b984f1691d9adb9f8063f64696f41f1;hpb=5c7603294c63971ef75ee975d8e3592125ae89d3;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/main.c b/src/bin/lttng-sessiond/main.c index 7da7faba0..06a09fbb9 100644 --- a/src/bin/lttng-sessiond/main.c +++ b/src/bin/lttng-sessiond/main.c @@ -406,13 +406,13 @@ static void close_consumer_sockets(void) if (ustconsumer32_data.err_sock >= 0) { ret = close(ustconsumer32_data.err_sock); if (ret < 0) { - PERROR("UST consumer32 err_sock close"); + PERROR("UST consumerd32 err_sock close"); } } if (ustconsumer64_data.err_sock >= 0) { ret = close(ustconsumer64_data.err_sock); if (ret < 0) { - PERROR("UST consumer64 err_sock close"); + PERROR("UST consumerd64 err_sock close"); } } if (kconsumer_data.cmd_sock >= 0) { @@ -424,13 +424,13 @@ static void close_consumer_sockets(void) if (ustconsumer32_data.cmd_sock >= 0) { ret = close(ustconsumer32_data.cmd_sock); if (ret < 0) { - PERROR("UST consumer32 cmd_sock close"); + PERROR("UST consumerd32 cmd_sock close"); } } if (ustconsumer64_data.cmd_sock >= 0) { ret = close(ustconsumer64_data.cmd_sock); if (ret < 0) { - PERROR("UST consumer64 cmd_sock close"); + PERROR("UST consumerd64 cmd_sock close"); } } } @@ -1148,12 +1148,14 @@ error: if (ret) { PERROR("close"); } + consumer_data->err_sock = -1; } if (consumer_data->cmd_sock >= 0) { ret = close(consumer_data->cmd_sock); if (ret) { PERROR("close"); } + consumer_data->cmd_sock = -1; } if (consumer_data->metadata_sock.fd >= 0) { ret = close(consumer_data->metadata_sock.fd); @@ -3951,12 +3953,12 @@ static int set_permissions(char *rundir) ret = allowed_group(); if (ret < 0) { WARN("No tracing group detected"); - ret = 0; - goto end; + /* Setting gid to 0 if no tracing group is found */ + gid = 0; + } else { + gid = ret; } - gid = ret; - /* Set lttng run dir */ ret = chown(rundir, 0, gid); if (ret < 0) { @@ -3964,7 +3966,7 @@ static int set_permissions(char *rundir) PERROR("chown"); } - /* Ensure tracing group can search the run dir */ + /* Ensure all applications and tracing group can search the run dir */ ret = chmod(rundir, S_IRWXU | S_IXGRP | S_IXOTH); if (ret < 0) { ERR("Unable to set permissions on %s", rundir); @@ -4001,7 +4003,6 @@ static int set_permissions(char *rundir) DBG("All permissions are set"); -end: return ret; } @@ -4075,6 +4076,16 @@ static int set_consumer_sockets(struct consumer_data *consumer_data, goto error; } + /* + * Set the CLOEXEC flag. Return code is useless because either way, the + * show must go on. + */ + ret = utils_set_fd_cloexec(consumer_data->err_sock); + if (ret < 0) { + PERROR("utils_set_fd_cloexec"); + /* continue anyway */ + } + /* File permission MUST be 660 */ ret = chmod(consumer_data->err_unix_sock_path, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);