summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Coopersmith <alan.coopersmith@oracle.com>2011-02-24 23:24:17 -0800
committerAlan Coopersmith <alan.coopersmith@oracle.com>2011-03-01 19:18:11 -0800
commitb8c26cb3d41b18dfcc14a1ae256f6575c7df7593 (patch)
tree9aab91d07dfdb95eb562f72c76e14230e0c4cd5a
parent9d424d79ca56e7e372a286fca478996eeee8ebfe (diff)
makeList: free partially allocated list on failure
Error: Memory leak (CWE 401) Memory leak of pointer 'first' allocated with malloc(8) at line 192 of list.c in function 'makeList'. 'first' allocated at line 181 with malloc(8). first leaks when next == 0 at line 191. [ This bug was found by the Parfait 0.3.6 bug checking tool. For more information see http://labs.oracle.com/projects/parfait/ ] Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Julien Cristau <jcristau@debian.org>
-rw-r--r--list.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/list.c b/list.c
index fdf81d3..a10b5ed 100644
--- a/list.c
+++ b/list.c
@@ -188,8 +188,10 @@ makeList(char **a, int n, ListPtr old, int begin)
current = first;
for(i = 1; i < n; i++) {
next = malloc(sizeof(ListRec));
- if(!next)
+ if(!next) {
+ destroyList(first);
return NULL;
+ }
next->value = a[i];
next->next = NULL;