diff mbox series

[OpenWrt-Devel,uci,10/18] cli: fix realloc issue spotted by cppcheck

Message ID 20191105003657.16540-11-ynezz@true.cz
State Accepted
Delegated to: Petr Štetiar
Headers show
Series fixes and improvements | expand

Commit Message

Petr Štetiar Nov. 5, 2019, 12:36 a.m. UTC
Cppcheck 1.90 dev reports following:

 cli.c:117:4: error: Common realloc mistake: 'typestr' nulled but not freed upon failure [memleakOnRealloc]
    typestr = realloc(typestr, maxlen);
    ^

Signed-off-by: Petr Štetiar <ynezz@true.cz>
---
 cli.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/cli.c b/cli.c
index f8b45dba091f..1ce4d5ed1d33 100644
--- a/cli.c
+++ b/cli.c
@@ -113,8 +113,16 @@  uci_lookup_section_ref(struct uci_section *s)
 		maxlen = strlen(s->type) + 1 + 2 + 10;
 		if (!typestr) {
 			typestr = malloc(maxlen);
+			if (!typestr)
+				return NULL;
 		} else {
-			typestr = realloc(typestr, maxlen);
+			void *p = realloc(typestr, maxlen);
+			if (!p) {
+				free(typestr);
+				return NULL;
+			}
+
+			typestr = p;
 		}
 
 		if (typestr)