diff options
author | Lasse Collin <lasse.collin@tukaani.org> | 2011-04-05 15:13:29 +0300 |
---|---|---|
committer | Lasse Collin <lasse.collin@tukaani.org> | 2011-04-05 15:13:29 +0300 |
commit | 1ef3cf44a8eb9512480af4482a5232ea08363b14 (patch) | |
tree | 248727b8e434c8b0a3aa94f2756179e31fe0812f | |
parent | liblzma: Fix a memory leak in stream_encoder.c. (diff) | |
download | xz-1ef3cf44a8eb9512480af4482a5232ea08363b14.tar.xz |
xz: Call lzma_end(&strm) before exiting if debugging is enabled.
-rw-r--r-- | src/xz/coder.c | 10 | ||||
-rw-r--r-- | src/xz/coder.h | 5 | ||||
-rw-r--r-- | src/xz/main.c | 4 |
3 files changed, 19 insertions, 0 deletions
diff --git a/src/xz/coder.c b/src/xz/coder.c index 5e5ed04c..c893f787 100644 --- a/src/xz/coder.c +++ b/src/xz/coder.c @@ -698,3 +698,13 @@ coder_run(const char *filename) return; } + + +#ifndef NDEBUG +extern void +coder_free(void) +{ + lzma_end(&strm); + return; +} +#endif diff --git a/src/xz/coder.h b/src/xz/coder.h index 7edca039..35000438 100644 --- a/src/xz/coder.h +++ b/src/xz/coder.h @@ -65,3 +65,8 @@ extern void coder_set_compression_settings(void); /// Compress or decompress the given file extern void coder_run(const char *filename); + +#ifndef NDEBUG +/// Free the memory allocated for the coder and kill the worker threads. +extern void coder_free(void); +#endif diff --git a/src/xz/main.c b/src/xz/main.c index 8196c6e7..4e5b49e5 100644 --- a/src/xz/main.c +++ b/src/xz/main.c @@ -275,6 +275,10 @@ main(int argc, char **argv) list_totals(); } +#ifndef NDEBUG + coder_free(); +#endif + // If we have got a signal, raise it to kill the program instead // of calling tuklib_exit(). signals_exit(); |