From da679389784acf2b427dfbecf075ee0a55878b6a Mon Sep 17 00:00:00 2001 From: Francois Berder <18538310+francois-berder@users.noreply.github.com> Date: Wed, 28 Aug 2019 09:39:07 +0100 Subject: [PATCH 1/3] Set dictionnary to NULL in lzsa_dictionary_free Signed-off-by: Francois Berder <18538310+francois-berder@users.noreply.github.com> --- src/dictionary.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dictionary.c b/src/dictionary.c index 1b1fe3b..fbc4f52 100644 --- a/src/dictionary.c +++ b/src/dictionary.c @@ -96,6 +96,6 @@ int lzsa_dictionary_load(const char *pszDictionaryFilename, void **ppDictionaryD void lzsa_dictionary_free(void **ppDictionaryData) { if (*ppDictionaryData) { free(*ppDictionaryData); - ppDictionaryData = NULL; + *ppDictionaryData = NULL; } } From a318ac2f8398517912e6fd8bd5a3869c1aca5552 Mon Sep 17 00:00:00 2001 From: Francois Berder <18538310+francois-berder@users.noreply.github.com> Date: Wed, 28 Aug 2019 09:40:49 +0100 Subject: [PATCH 2/3] Fix memory leak in comparestream_open Signed-off-by: Francois Berder <18538310+francois-berder@users.noreply.github.com> --- src/lzsa.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lzsa.c b/src/lzsa.c index 4136d7d..939a2c9 100755 --- a/src/lzsa.c +++ b/src/lzsa.c @@ -277,8 +277,10 @@ int comparestream_open(lzsa_stream_t *stream, const char *pszCompareFilename, co stream->close = comparestream_close; return 0; } - else + else { + free(pCompareStream); return -1; + } } static int do_compare(const char *pszInFilename, const char *pszOutFilename, const char *pszDictionaryFilename, const unsigned int nOptions, int nFormatVersion) { From 4f2d7da13634fad44c9a62064ee0a60c23191e5f Mon Sep 17 00:00:00 2001 From: Francois Berder <18538310+francois-berder@users.noreply.github.com> Date: Wed, 28 Aug 2019 09:41:54 +0100 Subject: [PATCH 3/3] Fix main return value if compressing Signed-off-by: Francois Berder <18538310+francois-berder@users.noreply.github.com> --- src/lzsa.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lzsa.c b/src/lzsa.c index 939a2c9..8004153 100755 --- a/src/lzsa.c +++ b/src/lzsa.c @@ -1054,7 +1054,9 @@ int main(int argc, char **argv) { if (cCommand == 'z') { int nResult = do_compress(pszInFilename, pszOutFilename, pszDictionaryFilename, nOptions, nMinMatchSize, nFormatVersion); if (nResult == 0 && bVerifyCompression) { - nResult = do_compare(pszOutFilename, pszInFilename, pszDictionaryFilename, nOptions, nFormatVersion); + return do_compare(pszOutFilename, pszInFilename, pszDictionaryFilename, nOptions, nFormatVersion); + } else { + return nResult; } } else if (cCommand == 'd') {