X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fshm.c;h=432d07ecea5eb4462d36a6a4727737532e97791f;hp=77c09995cf194d41620317c90e4ce6b961b8b1af;hb=e71aad1fa4b06a5f91ddceace42366f3d79bd77e;hpb=db7586006bc1a2b9057a2c108bf1e7d20fd6903f diff --git a/src/bin/lttng-sessiond/shm.c b/src/bin/lttng-sessiond/shm.c index 77c09995c..432d07ece 100644 --- a/src/bin/lttng-sessiond/shm.c +++ b/src/bin/lttng-sessiond/shm.c @@ -51,7 +51,7 @@ static int get_wait_shm(char *shm_path, size_t mmap_size, int global) ret = chown(shm_path, 0, 0); if (ret < 0) { if (errno != ENOENT) { - perror("chown wait shm"); + PERROR("chown wait shm"); goto error; } } @@ -65,7 +65,7 @@ static int get_wait_shm(char *shm_path, size_t mmap_size, int global) ret = chown(shm_path, getuid(), getgid()); if (ret < 0) { if (errno != ENOENT) { - perror("chown wait shm"); + PERROR("chown wait shm"); goto error; } } @@ -77,7 +77,7 @@ static int get_wait_shm(char *shm_path, size_t mmap_size, int global) ret = chmod(shm_path, mode); if (ret < 0) { if (errno != ENOENT) { - perror("chmod wait shm"); + PERROR("chmod wait shm"); goto error; } } @@ -94,21 +94,25 @@ static int get_wait_shm(char *shm_path, size_t mmap_size, int global) */ wait_shm_fd = shm_open(shm_path, O_RDWR | O_CREAT, mode); if (wait_shm_fd < 0) { - perror("shm_open wait shm"); + PERROR("shm_open wait shm"); goto error; } ret = ftruncate(wait_shm_fd, mmap_size); if (ret < 0) { - perror("ftruncate wait shm"); + PERROR("ftruncate wait shm"); exit(EXIT_FAILURE); } +#ifndef __FreeBSD__ ret = fchmod(wait_shm_fd, mode); if (ret < 0) { - perror("fchmod"); + PERROR("fchmod"); exit(EXIT_FAILURE); } +#else +#warning "FreeBSD does not support setting file mode on shm FD. Remember that for secure use, lttng-sessiond should be started before applications linked on lttng-ust." +#endif DBG("Got the wait shm fd %d", wait_shm_fd); @@ -145,7 +149,7 @@ char *shm_ust_get_mmap(char *shm_path, int global) /* close shm fd immediately after taking the mmap reference */ ret = close(wait_shm_fd); if (ret) { - perror("Error closing fd"); + PERROR("Error closing fd"); } if (wait_shm_mmap == MAP_FAILED) {