summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Martín Nieto <carlosmn@github.com>2016-03-03 12:14:02 +0100
committerCarlos Martín Nieto <carlosmn@github.com>2016-03-03 12:14:02 +0100
commit778fb695ed2a2a0162d83b3fc76bb36fbe2e1799 (patch)
tree254edbf896cd3898d20f71388e513fb6392d0e12
parent9b3fc895b724bbdd5a698c8e7dc9ae6551f0a83d (diff)
parenta4ea7faaad52dd1be7ba6daaccd789bed3f01d61 (diff)
downloadlibgit2-778fb695ed2a2a0162d83b3fc76bb36fbe2e1799.tar.gz
Merge pull request #3646 from pks-t/pks/xdiff-fix-from-upstream
xdiff: fix memleak on error case
-rw-r--r--src/xdiff/xmerge.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/xdiff/xmerge.c b/src/xdiff/xmerge.c
index 7928d1418..6448b5542 100644
--- a/src/xdiff/xmerge.c
+++ b/src/xdiff/xmerge.c
@@ -633,8 +633,11 @@ int xdl_merge(mmfile_t *orig, mmfile_t *mf1, mmfile_t *mf2,
result->ptr = NULL;
result->size = 0;
- if (xdl_do_diff(orig, mf1, xpp, &xe1) < 0 ||
- xdl_do_diff(orig, mf2, xpp, &xe2) < 0) {
+ if (xdl_do_diff(orig, mf1, xpp, &xe1) < 0) {
+ return -1;
+ }
+ if (xdl_do_diff(orig, mf2, xpp, &xe2) < 0) {
+ xdl_free_env(&xe1);
return -1;
}
if (xdl_change_compact(&xe1.xdf1, &xe1.xdf2, xpp->flags) < 0 ||