[PATCH] xdiff/xmerge: fix memory leak in xdl_merge
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Feb 23, 2016, 08:45 UTC
- Message-ID
- <1456217151-16473-1-git-send-email-ps@pks.im>
When building the script for the second file that is to be merged we have already allocated memory for data structures related to the first file. When we encounter an error in building the second script we only free allocated memory related to the second file before erroring out.
Fix this memory leak by also releasing allocated memory related to the first file.
Signed-off-by: Patrick Steinhardt <ps@pks.im> --- xdiff/xmerge.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/xdiff/xmerge.c b/xdiff/xmerge.c index d98f430..d04eb46 100644 --- a/xdiff/xmerge.c +++ b/xdiff/xmerge.c @@ -654,6 +654,8 @@ int xdl_merge(mmfile_t *orig, mmfile_t *mf1, mmfile_t *mf2, if (xdl_change_compact(&xe2.xdf1, &xe2.xdf2, xpp->flags) < 0 || xdl_change_compact(&xe2.xdf2, &xe2.xdf1, xpp->flags) < 0 || xdl_build_script(&xe2, &xscr2) < 0) { + xdl_free_script(xscr1); + xdl_free_env(&xe1); xdl_free_env(&xe2); return -1; }
-- 2.7.1