From 7ad3dcf939da289cd551e735e045e34d69baddec Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 11 May 2018 15:04:22 +1000 Subject: tools: libinput-record: fix leaking memory in the error cases Signed-off-by: Peter Hutterer --- tools/libinput-record.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'tools') diff --git a/tools/libinput-record.c b/tools/libinput-record.c index f0a41058..18b653c5 100644 --- a/tools/libinput-record.c +++ b/tools/libinput-record.c @@ -2068,7 +2068,7 @@ init_device(struct record_context *ctx, char *path) fprintf(stderr, "Failed to open device %s (%m)\n", d->devnode); - return false; + goto error; } rc = libevdev_new_from_fd(fd, &d->evdev); @@ -2077,8 +2077,7 @@ init_device(struct record_context *ctx, char *path) "Failed to create context for %s (%s)\n", d->devnode, strerror(-rc)); - close(fd); - return false; + goto error; } libevdev_set_clock_id(d->evdev, CLOCK_MONOTONIC); @@ -2090,6 +2089,11 @@ init_device(struct record_context *ctx, char *path) ctx->ndevices++; return true; +error: + close(fd); + free(d); + return false; + } static int open_restricted(const char *path, int flags, void *user_data) -- cgit v1.2.3