X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fcompat%2Fcompat-epoll.c;h=ecd09a0924a43f3aef6dbcd0fdb2055a45d44bb9;hp=25c9955045b3bb09435beea959d891c67f1c77a4;hb=53efb85a242809ed5ed21e9ab40effa696ecbc6f;hpb=8f0044bfed9f5ca51eab51478f483f92cc8f84a7 diff --git a/src/common/compat/compat-epoll.c b/src/common/compat/compat-epoll.c index 25c995504..ecd09a092 100644 --- a/src/common/compat/compat-epoll.c +++ b/src/common/compat/compat-epoll.c @@ -51,6 +51,11 @@ static int resize_poll_event(struct lttng_poll_event *events, PERROR("realloc epoll add"); goto error; } + if (new_size > events->alloc_size) { + /* Zero newly allocated memory */ + memset(ptr + events->alloc_size, 0, + (new_size - events->alloc_size) * sizeof(*ptr)); + } events->events = ptr; events->alloc_size = new_size; @@ -119,6 +124,11 @@ int compat_epoll_add(struct lttng_poll_event *events, int fd, uint32_t req_event goto error; } + /* + * Zero struct epoll_event to ensure all representations of its + * union are zeroed. + */ + memset(&ev, 0, sizeof(ev)); ev.events = req_events; ev.data.fd = fd;