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;
struct iovec iov[1];
ssize_t ret;
+ assert(sock);
+ assert(buf);
+ assert(len > 0);
+
memset(&msg, 0, sizeof(msg));
iov[0].iov_base = buf;
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;
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;
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));
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));
struct msghdr msg;
char dummy;
+ assert(sock);
+ assert(fds);
+ assert(nb_fd > 0);
+
memset(&msg, 0, sizeof(msg));
/* Prepare to receive the structures */
int *raw_fd = (int *) lttng_dynamic_array_get_element(
raw_fds, i);
+ assert(*raw_fd != -1);
+
handle = fd_handle_create(*raw_fd);
if (!handle) {
ret_code = LTTNG_ERR_NOMEM;
ssize_t _lttcomm_recv_payload_fds_unix_sock(int sock, size_t nb_fd,
struct lttng_payload *payload, bool blocking)
{
+ int i = 0;
enum lttng_error_code add_ret;
ssize_t ret;
+ 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);
- ret = lttng_dynamic_array_set_count(&raw_fds, nb_fd);
- if (ret) {
- ret = -LTTNG_ERR_NOMEM;
- goto end;
+
+ for (i = 0; i < nb_fd; i++) {
+ if (lttng_dynamic_array_add_element(&raw_fds, &default_value)) {
+ ret = -LTTNG_ERR_NOMEM;
+ goto end;
+ }
}
if (blocking) {
sock, (int *) raw_fds.buffer.data, nb_fd);
}
- if (ret < 0) {
+ if (ret <= 0) {
goto end;
}
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))
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;
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;