summaryrefslogtreecommitdiffhomepage
path: root/common-kex.c
diff options
context:
space:
mode:
authorMatt Johnston <matt@ucc.asn.au>2017-05-22 22:09:26 +0800
committerMatt Johnston <matt@ucc.asn.au>2017-05-22 22:09:26 +0800
commit114438e66979926ad88756fb491d70172603abad (patch)
tree9022d5c41cb533f4fd3b384c29e5d4acf3304324 /common-kex.c
parent50bde9976b7ef51a7cd4f00cf9734387aa4ce33e (diff)
zlib can use m_malloc/m_free too
--HG-- branch : fuzz
Diffstat (limited to 'common-kex.c')
-rw-r--r--common-kex.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/common-kex.c b/common-kex.c
index a95182c..1f3d51b 100644
--- a/common-kex.c
+++ b/common-kex.c
@@ -391,6 +391,14 @@ int is_compress_recv() {
&& ses.keys->recv.algo_comp == DROPBEAR_COMP_ZLIB_DELAY);
}
+static void* dropbear_zalloc(void* UNUSED(opaque), uInt items, uInt size) {
+ return m_calloc(items, size);
+}
+
+static void dropbear_zfree(void* UNUSED(opaque), void* ptr) {
+ m_free(ptr);
+}
+
/* Set up new zlib compression streams, close the old ones. Only
* called from gen_new_keys() */
static void gen_new_zstream_recv() {
@@ -399,11 +407,10 @@ static void gen_new_zstream_recv() {
if (ses.newkeys->recv.algo_comp == DROPBEAR_COMP_ZLIB
|| ses.newkeys->recv.algo_comp == DROPBEAR_COMP_ZLIB_DELAY) {
ses.newkeys->recv.zstream = (z_streamp)m_malloc(sizeof(z_stream));
- ses.newkeys->recv.zstream->zalloc = Z_NULL;
- ses.newkeys->recv.zstream->zfree = Z_NULL;
+ ses.newkeys->recv.zstream->zalloc = dropbear_zalloc;
+ ses.newkeys->recv.zstream->zfree = dropbear_zfree;
if (inflateInit(ses.newkeys->recv.zstream) != Z_OK) {
- m_free(ses.newkeys->recv.zstream);
dropbear_exit("zlib error");
}
} else {
@@ -424,8 +431,8 @@ static void gen_new_zstream_trans() {
if (ses.newkeys->trans.algo_comp == DROPBEAR_COMP_ZLIB
|| ses.newkeys->trans.algo_comp == DROPBEAR_COMP_ZLIB_DELAY) {
ses.newkeys->trans.zstream = (z_streamp)m_malloc(sizeof(z_stream));
- ses.newkeys->trans.zstream->zalloc = Z_NULL;
- ses.newkeys->trans.zstream->zfree = Z_NULL;
+ ses.newkeys->trans.zstream->zalloc = dropbear_zalloc;
+ ses.newkeys->trans.zstream->zfree = dropbear_zfree;
if (deflateInit2(ses.newkeys->trans.zstream, Z_DEFAULT_COMPRESSION,
Z_DEFLATED, DROPBEAR_ZLIB_WINDOW_BITS,