X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Funix.c;h=023bff847273df004c537593cbbbceb012540681;hb=982583bdd4fea58b902f8396a83e2233a70087ad;hp=ae2b822af5a57debc7e0288011ab18a36abdd940;hpb=b3ba184e31e0e5cc67e7d7fb6594096a068ad1be;p=lttng-tools.git diff --git a/src/common/unix.c b/src/common/unix.c index ae2b822af..023bff847 100644 --- a/src/common/unix.c +++ b/src/common/unix.c @@ -181,6 +181,10 @@ ssize_t lttcomm_recv_unix_sock(int sock, void *buf, size_t len) ssize_t ret = -1; size_t len_last; + assert(sock); + assert(buf); + assert(len > 0); + memset(&msg, 0, sizeof(msg)); iov[0].iov_base = buf; @@ -223,6 +227,10 @@ ssize_t lttcomm_recv_unix_sock_non_block(int sock, void *buf, size_t len) struct iovec iov[1]; ssize_t ret; + assert(sock); + assert(buf); + assert(len > 0); + memset(&msg, 0, sizeof(msg)); iov[0].iov_base = buf; @@ -271,6 +279,10 @@ ssize_t lttcomm_send_unix_sock(int sock, const void *buf, size_t len) struct iovec iov[1]; ssize_t ret; + assert(sock); + assert(buf); + assert(len > 0); + memset(&msg, 0, sizeof(msg)); iov[0].iov_base = (void *) buf; @@ -321,6 +333,10 @@ ssize_t lttcomm_send_unix_sock_non_block(int sock, const void *buf, size_t len) struct iovec iov[1]; ssize_t ret; + assert(sock); + assert(buf); + assert(len > 0); + memset(&msg, 0, sizeof(msg)); iov[0].iov_base = (void *) buf; @@ -395,6 +411,10 @@ ssize_t lttcomm_send_fds_unix_sock(int sock, const int *fds, size_t nb_fd) char tmp[CMSG_SPACE(sizeof_fds)]; char dummy = 0; + assert(sock); + assert(fds); + assert(nb_fd > 0); + memset(&msg, 0, sizeof(msg)); memset(tmp, 0, sizeof(tmp)); @@ -525,6 +545,10 @@ ssize_t lttcomm_send_fds_unix_sock_non_block(int sock, const int *fds, size_t nb char tmp[CMSG_SPACE(sizeof_fds)]; char dummy = 0; + assert(sock); + assert(fds); + assert(nb_fd > 0); + memset(&msg, 0, sizeof(msg)); memset(tmp, 0, sizeof(tmp)); @@ -614,6 +638,10 @@ ssize_t lttcomm_recv_fds_unix_sock(int sock, int *fds, size_t nb_fd) struct msghdr msg; char dummy; + assert(sock); + assert(fds); + assert(nb_fd > 0); + memset(&msg, 0, sizeof(msg)); /* Prepare to receive the structures */ @@ -763,6 +791,10 @@ ssize_t _lttcomm_recv_payload_fds_unix_sock(int sock, size_t nb_fd, int default_value = -1; struct lttng_dynamic_array raw_fds; + assert(sock); + assert(payload); + assert(nb_fd > 0); + lttng_dynamic_array_init(&raw_fds, sizeof(int), close_raw_fd); for (i = 0; i < nb_fd; i++) { @@ -829,6 +861,10 @@ ssize_t lttcomm_recv_fds_unix_sock_non_block(int sock, int *fds, size_t nb_fd) struct cmsghdr *cmsg; size_t sizeof_fds = nb_fd * sizeof(int); + assert(sock); + assert(fds); + assert(nb_fd > 0); + #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)) @@ -967,6 +1003,10 @@ ssize_t lttcomm_send_creds_unix_sock(int sock, const void *buf, size_t len) memset(&msg, 0, sizeof(msg)); + assert(sock); + assert(buf); + assert(len > 0); + iov[0].iov_base = (void *) buf; iov[0].iov_len = len; msg.msg_iov = iov; @@ -1025,13 +1065,12 @@ ssize_t lttcomm_recv_creds_unix_sock(int sock, void *buf, size_t len, char anc_buf[CMSG_SPACE(sizeof_cred)]; #endif /* __linux__ */ - memset(&msg, 0, sizeof(msg)); + assert(sock); + assert(buf); + assert(len > 0); + assert(creds); - /* Not allowed */ - if (creds == NULL) { - ret = -1; - goto end; - } + memset(&msg, 0, sizeof(msg)); /* Prepare to receive the structures */ iov[0].iov_base = buf;