gzip: Move cleanup to separate function

to avoid exposing gzip function into wrapper.c

Signed-off-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
Jakub Jelen
2025-01-13 13:40:39 +01:00
parent a547b7f115
commit 00fce9cb6c
3 changed files with 17 additions and 13 deletions

View File

@@ -231,6 +231,8 @@ int secure_memcmp(const void *s1, const void *s2, size_t n);
ENGINE *pki_get_engine(void);
#endif /* HAVE_LIBCRYPTO */
void compress_cleanup(struct ssh_crypto_struct *crypto);
#ifdef __cplusplus
}
#endif

View File

@@ -260,3 +260,17 @@ decompress_buffer(ssh_session session, ssh_buffer buf, size_t maxlen)
SSH_BUFFER_FREE(dest);
return 0;
}
void
compress_cleanup(struct ssh_crypto_struct *crypto)
{
if (crypto->compress_out_ctx) {
deflateEnd(crypto->compress_out_ctx);
}
SAFE_FREE(crypto->compress_out_ctx);
if (crypto->compress_in_ctx) {
inflateEnd(crypto->compress_in_ctx);
}
SAFE_FREE(crypto->compress_in_ctx);
}

View File

@@ -38,10 +38,6 @@
#include <stdio.h>
#include <string.h>
#ifdef WITH_ZLIB
#include <zlib.h>
#endif
#include "libssh/priv.h"
#include "libssh/session.h"
#include "libssh/crypto.h"
@@ -202,15 +198,7 @@ void crypto_free(struct ssh_crypto_struct *crypto)
SAFE_FREE(crypto->secret_hash);
}
#ifdef WITH_ZLIB
if (crypto->compress_out_ctx) {
deflateEnd(crypto->compress_out_ctx);
}
SAFE_FREE(crypto->compress_out_ctx);
if (crypto->compress_in_ctx) {
inflateEnd(crypto->compress_in_ctx);
}
SAFE_FREE(crypto->compress_in_ctx);
compress_cleanup(crypto);
#endif /* WITH_ZLIB */
SAFE_FREE(crypto->encryptIV);
SAFE_FREE(crypto->decryptIV);