X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fshm.c;h=432d07ecea5eb4462d36a6a4727737532e97791f;hb=a186a15913c34e8adc83ea71565d3b0eec296774;hp=64c712e85234a65ce50c37397d0d2cb0ef256f0e;hpb=10a8a2237343699e3923d87e24dbf2d7fe225377;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/shm.c b/src/bin/lttng-sessiond/shm.c index 64c712e85..432d07ece 100644 --- a/src/bin/lttng-sessiond/shm.c +++ b/src/bin/lttng-sessiond/shm.c @@ -26,7 +26,7 @@ #include #include -#include +#include #include "shm.h" @@ -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) {