tools: record: fix two memory leaks
authorPeter Hutterer <peter.hutterer@who-t.net>
Wed, 31 Jul 2019 22:31:07 +0000 (08:31 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Wed, 31 Jul 2019 22:41:01 +0000 (08:41 +1000)
Found by coverity.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
tools/libinput-record.c

index 2d1400e..75fa284 100644 (file)
@@ -1736,7 +1736,7 @@ print_device_quirks(struct record_context *ctx, struct record_device *dev)
        struct quirks_context *quirks;
        const char *data_path = LIBINPUT_QUIRKS_DIR;
        const char *override_file = LIBINPUT_QUIRKS_OVERRIDE_FILE;
-       const char *builddir = NULL;
+       char *builddir = NULL;
 
        if (stat(dev->devnode, &st) < 0)
                return;
@@ -1747,6 +1747,8 @@ print_device_quirks(struct record_context *ctx, struct record_device *dev)
                override_file = NULL;
        }
 
+       free(builddir);
+
        quirks = quirks_init_subsystem(data_path,
                                       override_file,
                                       quirks_log_handler,
@@ -1777,6 +1779,7 @@ print_device_quirks(struct record_context *ctx, struct record_device *dev)
 out:
        udev_device_unref(udev_device);
        udev_unref(udev);
+       quirks_context_unref(quirks);
 }
 static inline void
 print_libinput_description(struct record_context *ctx,