aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2018-04-13 01:09:02 +0000
committerNIIBE Yutaka <[email protected]>2018-04-13 01:09:02 +0000
commitc31abf84659dbda5503dd9f3aa3449520bcd1b84 (patch)
tree6b469fad376cd4939685a4690ad786609d268578
parentpo: Update Spanish translation (diff)
downloadgnupg-c31abf84659dbda5503dd9f3aa3449520bcd1b84.tar.gz
gnupg-c31abf84659dbda5503dd9f3aa3449520bcd1b84.zip
g10: Push compress filter only if compressed.
* g10/compress.c (handle_compressed): Fix memory leak. -- All other calls of push_compress_filter checks ALGO, so, do it here, too. GnuPG-bug-id: 3898 Signed-off-by: NIIBE Yutaka <[email protected]>
-rw-r--r--g10/compress.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/g10/compress.c b/g10/compress.c
index 61bb756f2..67c9c9bd6 100644
--- a/g10/compress.c
+++ b/g10/compress.c
@@ -309,15 +309,18 @@ int
handle_compressed (ctrl_t ctrl, void *procctx, PKT_compressed *cd,
int (*callback)(IOBUF, void *), void *passthru )
{
- compress_filter_context_t *cfx;
int rc;
if(check_compress_algo(cd->algorithm))
return GPG_ERR_COMPR_ALGO;
- cfx = xmalloc_clear (sizeof *cfx);
- cfx->release = release_context;
- cfx->algo = cd->algorithm;
- push_compress_filter(cd->buf,cfx,cd->algorithm);
+ if(cd->algorithm) {
+ compress_filter_context_t *cfx;
+
+ cfx = xmalloc_clear (sizeof *cfx);
+ cfx->release = release_context;
+ cfx->algo = cd->algorithm;
+ push_compress_filter(cd->buf,cfx,cd->algorithm);
+ }
if( callback )
rc = callback(cd->buf, passthru );
else