diff options
author | Patrick Steinhardt <ps@pks.im> | 2016-03-31 11:32:36 +0200 |
---|---|---|
committer | Patrick Steinhardt <ps@pks.im> | 2016-03-31 11:34:03 +0200 |
commit | 6045afd39807b320013067858ed37adee9c0fc0d (patch) | |
tree | c738179a3528e8ec17e2a2183bb390e452b5f112 | |
parent | 1bce14874f1febe8c11bb2691210dd3c5eb6ca53 (diff) | |
download | libgit2-6045afd39807b320013067858ed37adee9c0fc0d.tar.gz |
xdiff/xprepare: fix a memory leak
The xdl_prepare_env() function may initialise an xdlclassifier_t
data structure via xdl_init_classifier(), which allocates memory
to several fields, for example 'rchash', 'rcrecs' and 'ncha'.
If this function later exits due to the failure of xdl_optimize_ctxs(),
then this xdlclassifier_t structure, and the memory allocated to it,
is not cleaned up.
In order to fix the memory leak, insert a call to xdl_free_classifier()
before returning.
This patch was originally written by Ramsay Jones (see commit
87f16258367a3b9a62663b11f898a4a6f3c19d31 in git.git).
-rw-r--r-- | src/xdiff/xprepare.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/xdiff/xprepare.c b/src/xdiff/xprepare.c index ffb70df49..3183d50eb 100644 --- a/src/xdiff/xprepare.c +++ b/src/xdiff/xprepare.c @@ -301,6 +301,7 @@ int xdl_prepare_env(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp, xdl_free_ctx(&xe->xdf2); xdl_free_ctx(&xe->xdf1); + xdl_free_classifier(&cf); return -1; } |