diff options
author | Wei,Jiangang <weijg.fnst@cn.fujitsu.com> | 2015-06-10 14:55:00 +0800 |
---|---|---|
committer | Cyril Hrubis <chrubis@suse.cz> | 2015-06-11 16:49:34 +0200 |
commit | ce9d2bb688997fa26d0a2799172db7a733b9b5ca (patch) | |
tree | 88fbed969ed3d91ee23df830cdae420f18449b8d /pan | |
parent | f5b5b063a58d42d20dc2cb49b7d7c86c2f9e2819 (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.c | 5 |
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; |