Don't leak when realloc fails

Found by coverity

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Peter Hutterer 2018-02-14 15:39:07 +10:00
parent da94e4e603
commit 075e998b07

View file

@ -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 &&