Răsfoiți Sursa

packages: nvram: fix memory leak in _nvram_free

The value of nvram_tuple_t is allocated in _nvram_realloc,
but it is not freed in _nvram_free.

Signed-off-by: Zhai Zhaoxuan <[email protected]>
Zhai Zhaoxuan 8 ani în urmă
părinte
comite
c382237ac3
1 a modificat fișierele cu 4 adăugiri și 0 ștergeri
  1. 4 0
      package/utils/nvram/src/nvram.c

+ 4 - 0
package/utils/nvram/src/nvram.c

@@ -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);
 	}