X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Funix.c;h=d37313c5aed87ee6600b1953ce6ba84a97d6f660;hp=edca02abf4fa246ad3d33b399ddbd0be252060b8;hb=ba49ae8cc1f9d51c2ef1a60b113fda2e58dc2a7c;hpb=b45f9ad2a6cd4d4071f498ae0f6211c9b0dc253e diff --git a/src/common/unix.c b/src/common/unix.c index edca02abf..d37313c5a 100644 --- a/src/common/unix.c +++ b/src/common/unix.c @@ -441,8 +441,14 @@ ssize_t lttcomm_recv_fds_unix_sock(int sock, int *fds, size_t nb_fd) struct cmsghdr *cmsg; size_t sizeof_fds = nb_fd * sizeof(int); - /* Account for the struct ucred cmsg in the buffer size */ - char recv_buf[CMSG_SPACE(sizeof_fds) + CMSG_SPACE(sizeof(struct ucred))]; +#ifdef __linux__ +/* Account for the struct ucred cmsg in the buffer size */ +#define LTTNG_SOCK_RECV_FDS_BUF_SIZE CMSG_SPACE(sizeof_fds) + CMSG_SPACE(sizeof(struct ucred)) +#else +#define LTTNG_SOCK_RECV_FDS_BUF_SIZE CMSG_SPACE(sizeof_fds) +#endif /* __linux__ */ + + char recv_buf[LTTNG_SOCK_RECV_FDS_BUF_SIZE]; struct msghdr msg; char dummy; @@ -512,6 +518,7 @@ ssize_t lttcomm_recv_fds_unix_sock(int sock, int *fds, size_t nb_fd) ret = sizeof_fds; goto end; } +#ifdef __linux__ if (cmsg->cmsg_type == SCM_CREDENTIALS) { /* * Expect credentials to be sent when expecting fds even @@ -520,6 +527,7 @@ ssize_t lttcomm_recv_fds_unix_sock(int sock, int *fds, size_t nb_fd) */ ret = -1; } +#endif /* __linux__ */ } end: return ret;