aboutsummaryrefslogtreecommitdiff
path: root/pan
diff options
context:
space:
mode:
authorWei,Jiangang <weijg.fnst@cn.fujitsu.com>2015-06-10 14:55:00 +0800
committerCyril Hrubis <chrubis@suse.cz>2015-06-11 16:49:34 +0200
commitce9d2bb688997fa26d0a2799172db7a733b9b5ca (patch)
tree88fbed969ed3d91ee23df830cdae420f18449b8d /pan
parentf5b5b063a58d42d20dc2cb49b7d7c86c2f9e2819 (diff)
pan/symbol.c: fix memory leak for failure case
Signed-off-by: Wei,Jiangang <weijg.fnst@cn.fujitsu.com>
Diffstat (limited to 'pan')
-rw-r--r--pan/symbol.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/pan/symbol.c b/pan/symbol.c
index d7b90af1e..ca9964ab2 100644
--- a/pan/symbol.c
+++ b/pan/symbol.c
@@ -112,6 +112,7 @@ static struct sym *mknode(struct sym *next, char *key, void *data)
if (n->key == NULL) {
sym_error = "sym node strdup(key) failed!";
+ free(n);
return (NULL);
}
return (n);
@@ -204,8 +205,10 @@ int sym_put(SYM sym, char *key, void *data, int flags)
nkey = strdup(key);
keys = splitstr(key, ",", NULL);
- if (keys == NULL)
+ if (keys == NULL) {
+ free(nkey);
return (EINVAL);
+ }
for (kk = (char **)keys, csym = sym;
*kk != NULL && (nsym = find_key1(csym->sym, *kk)) != NULL;