From 49dbdb782e21dda3e9be242ddcc37f0bcd06f4a7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?poljar=20=28Damir=20Jeli=C4=87=29?= Date: Wed, 30 Oct 2013 23:04:02 +0100 Subject: [PATCH] sigrok-cli: Fix leaks in device_scan(). If a bogus driver name is specified on the command line or for some reason we fail to initialize a driver device_scan() leaks data. This patch adds appropriate free calls. --- sigrok-cli.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sigrok-cli.c b/sigrok-cli.c index c60d3bb..dbe0b2c 100644 --- a/sigrok-cli.c +++ b/sigrok-cli.c @@ -178,11 +178,14 @@ static GSList *device_scan(void) } if (!driver) { g_critical("Driver %s not found.", drvname); + g_hash_table_destroy(drvargs); + g_free(drvname); return NULL; } g_free(drvname); if (sr_driver_init(sr_ctx, driver) != SR_OK) { g_critical("Failed to initialize driver."); + g_hash_table_destroy(drvargs); return NULL; } drvopts = NULL; @@ -193,7 +196,7 @@ static GSList *device_scan(void) return NULL; } } - g_hash_table_destroy(drvargs); + g_hash_table_destroy(drvargs); devices = sr_driver_scan(driver, drvopts); g_slist_free_full(drvopts, (GDestroyNotify)free_drvopts); } else { -- 2.30.2