packages: nvram: fix memory leak in _nvram_free
[openwrt/staging/chunkeey.git] / package / utils / nvram / src / nvram.c
index ca893921076ee17db3e855138f91c28a87d2d1c4..d5e12ee69a3e78cc94916c75009444795d8c1baf 100644 (file)
@@ -47,6 +47,8 @@ static void _nvram_free(nvram_handle_t *h)
        for (i = 0; i < NVRAM_ARRAYSIZE(h->nvram_hash); i++) {
                for (t = h->nvram_hash[i]; t; t = next) {
                        next = t->next;
+                       if (t->value)
+                               free(t->value);
                        free(t);
                }
                h->nvram_hash[i] = NULL;
@@ -55,6 +57,8 @@ static void _nvram_free(nvram_handle_t *h)
        /* Free dead table */
        for (t = h->nvram_dead; t; t = next) {
                next = t->next;
+               if (t->value)
+                       free(t->value);
                free(t);
        }