X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fcompat%2Fcompat-poll.c;h=6d34a0e69cbba04d133430d11fbce0626612bad0;hp=79fcb7d652b87230815c4d7b6d7146cf8546a9c2;hb=6f04ed72990f6c72d16fd08d39feac0967da732e;hpb=cfa9a5a2b4a96e0d6a9eeddd2622a6d7c173b7ac diff --git a/src/common/compat/compat-poll.c b/src/common/compat/compat-poll.c index 79fcb7d65..6d34a0e69 100644 --- a/src/common/compat/compat-poll.c +++ b/src/common/compat/compat-poll.c @@ -16,6 +16,7 @@ */ #define _GNU_SOURCE +#define _LGPL_SOURCE #include #include #include @@ -52,6 +53,11 @@ static int resize_poll_event(struct compat_poll_event_array *array, PERROR("realloc epoll add"); goto error; } + if (new_size > array->alloc_size) { + /* Zero newly allocated memory */ + memset(ptr + array->alloc_size, 0, + (new_size - array->alloc_size) * sizeof(*ptr)); + } array->events = ptr; array->alloc_size = new_size; @@ -121,7 +127,7 @@ int compat_poll_create(struct lttng_poll_event *events, int size) /* This *must* be freed by using lttng_poll_free() */ wait->events = zmalloc(size * sizeof(struct pollfd)); if (wait->events == NULL) { - perror("zmalloc struct pollfd"); + PERROR("zmalloc struct pollfd"); goto error; } @@ -129,7 +135,7 @@ int compat_poll_create(struct lttng_poll_event *events, int size) current->events = zmalloc(size * sizeof(struct pollfd)); if (current->events == NULL) { - perror("zmalloc struct current pollfd"); + PERROR("zmalloc struct current pollfd"); goto error; } @@ -273,7 +279,7 @@ int compat_poll_wait(struct lttng_poll_event *events, int timeout) ret = poll(events->wait.events, events->wait.nb_fd, timeout); if (ret < 0) { /* At this point, every error is fatal */ - perror("poll wait"); + PERROR("poll wait"); goto error; } @@ -300,7 +306,7 @@ void compat_poll_set_max_size(void) ret = getrlimit(RLIMIT_NOFILE, &lim); if (ret < 0) { - perror("getrlimit poll RLIMIT_NOFILE"); + PERROR("getrlimit poll RLIMIT_NOFILE"); return; }