From 075e998b07503986cdd17e82bf0f0d695e21dc9e Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Wed, 14 Feb 2018 15:39:07 +1000 Subject: [PATCH] Don't leak when realloc fails Found by coverity Signed-off-by: Peter Hutterer --- src/libinput.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/libinput.c b/src/libinput.c index d85693a4..8fb0ba92 100644 --- a/src/libinput.c +++ b/src/libinput.c @@ -2735,15 +2735,19 @@ libinput_post_event(struct libinput *libinput, events_count++; if (events_count > events_len) { + void *tmp; + events_len *= 2; - events = realloc(events, events_len * sizeof *events); - if (!events) { + tmp = realloc(events, events_len * sizeof *events); + if (!tmp) { log_error(libinput, "Failed to reallocate event ring buffer. " "Events may be discarded\n"); return; } + events = tmp; + if (libinput->events_count > 0 && libinput->events_in == 0) { libinput->events_in = libinput->events_len; } else if (libinput->events_count > 0 &&