]> sigrok.org Git - sigrok-cli.git/commitdiff
parserc.c: Fix memory leak from g_strsplit
authorAlexandru Gagniuc <redacted>
Wed, 19 Dec 2012 07:31:58 +0000 (01:31 -0600)
committerUwe Hermann <redacted>
Tue, 1 Jan 2013 23:28:59 +0000 (00:28 +0100)
g_strsplit() returns a newly-allocated NULL-terminated array of strings.
g_strfreev() must be used to free it, once it is no longer needed.

The probe 'names' were not freed properly, causing a "definitely lost" memory
leak.

Call g_strfreev(names) to properly free the memory.

Signed-off-by: Alexandru Gagniuc <redacted>
parsers.c

index 1dfc16cba283f039280b30761e04b07c9b757312..59b1f6823aaa1f52b9243642f2e49c550329de06 100644 (file)
--- a/parsers.c
+++ b/parsers.c
@@ -54,6 +54,7 @@ GSList *parse_probestring(struct sr_dev_inst *sdi, const char *probestring)
 
        ret = SR_OK;
        range = NULL;
+       names = NULL;
        probelist = NULL;
        tokens = g_strsplit(probestring, ",", 0);
        for (i = 0; tokens[i]; i++) {
@@ -137,6 +138,9 @@ GSList *parse_probestring(struct sr_dev_inst *sdi, const char *probestring)
        if (range)
                g_strfreev(range);
 
+       if (names)
+               g_strfreev(names);
+
        if (ret != SR_OK) {
                g_slist_free(probelist);
                probelist = NULL;