Browse Source

cli: fix realloc issue spotted by cppcheck

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>
Petr Štetiar 4 years ago
parent
commit
f5dd5217d6
1 changed files with 9 additions and 1 deletions
  1. 9 1
      cli.c

+ 9 - 1
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)