diff options
author | Allan McRae <allan@archlinux.org> | 2014-12-22 08:39:47 +0100 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2014-12-24 02:19:29 +0100 |
commit | 27506aba8fe1e67bff7df47922d0e5fbba17b19f (patch) | |
tree | 4615b2f10d13d1541acfecd12da514da255a9928 | |
parent | 46459da39b4a38397f9781435573b7acd5b9004c (diff) | |
download | pacman-27506aba8fe1e67bff7df47922d0e5fbba17b19f.tar.gz pacman-27506aba8fe1e67bff7df47922d0e5fbba17b19f.tar.xz |
_alpm_conflict_dup: fix memory leak on error
Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r-- | lib/libalpm/conflict.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/libalpm/conflict.c b/lib/libalpm/conflict.c index db07102c..63b83048 100644 --- a/lib/libalpm/conflict.c +++ b/lib/libalpm/conflict.c @@ -79,11 +79,15 @@ alpm_conflict_t *_alpm_conflict_dup(const alpm_conflict_t *conflict) newconflict->package1_hash = conflict->package1_hash; newconflict->package2_hash = conflict->package2_hash; - STRDUP(newconflict->package1, conflict->package1, return NULL); - STRDUP(newconflict->package2, conflict->package2, return NULL); + STRDUP(newconflict->package1, conflict->package1, goto error); + STRDUP(newconflict->package2, conflict->package2, goto error); newconflict->reason = conflict->reason; return newconflict; + +error: + alpm_conflict_free(newconflict); + return NULL; } /** |