summaryrefslogtreecommitdiff
path: root/list.c
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 /list.c
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>
Diffstat (limited to 'list.c')
-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;