[source] packages: nvram: fix memory leak in _nvram_free

LEDE Commits lede-commits at lists.infradead.org
Wed Nov 15 12:18:20 PST 2017


blogic pushed a commit to source.git, branch master:
https://git.lede-project.org/c382237ac33a787043b22abc42f0c5a80278baae

commit c382237ac33a787043b22abc42f0c5a80278baae
Author: Zhai Zhaoxuan <zhaizhaoxuan at xiaomi.com>
AuthorDate: Tue Jul 11 18:12:00 2017 +0800

    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 <zhaizhaoxuan at xiaomi.com>
---
 package/utils/nvram/src/nvram.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/package/utils/nvram/src/nvram.c b/package/utils/nvram/src/nvram.c
index ca89392..d5e12ee 100644
--- a/package/utils/nvram/src/nvram.c
+++ b/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);
 	}
 



More information about the lede-commits mailing list