g10: Push compress filter only if compressed.

* g10/compress.c (handle_compressed): Fix memory leak.

--

(backport from STABLE-BRANCH-2-2 commit:
c31abf8465)

All other calls of push_compress_filter checks ALGO,
so, do it here, too.

GnuPG-bug-id: 3898
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
NIIBE Yutaka 2018-04-13 10:09:02 +09:00
parent 097c593158
commit 0f8fd95ab3
1 changed files with 8 additions and 5 deletions

View File

@ -313,15 +313,18 @@ int
handle_compressed( 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 G10ERR_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