From 7fd8f5fcdfa6310787809a3828e887d48a16ae6e Mon Sep 17 00:00:00 2001 From: Guido Vranken Date: Mon, 26 Jun 2017 21:01:15 +0200 Subject: [PATCH] Prepare compression functions for fuzzing --- src/openvpn/comp-lz4.c | 5 ++++- src/openvpn/comp.c | 5 ++++- src/openvpn/compstub.c | 10 ++++++++-- src/openvpn/lzo.c | 5 ++++- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/openvpn/comp-lz4.c b/src/openvpn/comp-lz4.c index 6e40c325c..3d5ddaeda 100644 --- a/src/openvpn/comp-lz4.c +++ b/src/openvpn/comp-lz4.c @@ -139,7 +139,10 @@ lz4_compress(struct buffer *buf, struct buffer work, { uint8_t *head = BPTR(buf); uint8_t *tail = BEND(buf); - ASSERT(buf_safe(buf, 1)); + if ( !(buf_safe(buf, 1)) ) + { + return; + } ++buf->len; /* move head byte of payload to tail */ diff --git a/src/openvpn/comp.c b/src/openvpn/comp.c index 4cda7e5ee..2b8c2ec76 100644 --- a/src/openvpn/comp.c +++ b/src/openvpn/comp.c @@ -98,7 +98,10 @@ compv2_escape_data_ifneeded(struct buffer *buf) } /* Header is 0x50 */ - ASSERT(buf_prepend(buf, 2)); + if ( !(buf_prepend(buf, 2)) ) + { + return; + } head = BPTR(buf); head[0] = COMP_ALGV2_INDICATOR_BYTE; diff --git a/src/openvpn/compstub.c b/src/openvpn/compstub.c index ca90924e6..a203767cc 100644 --- a/src/openvpn/compstub.c +++ b/src/openvpn/compstub.c @@ -60,7 +60,10 @@ stub_compress(struct buffer *buf, struct buffer work, { uint8_t *head = BPTR(buf); uint8_t *tail = BEND(buf); - ASSERT(buf_safe(buf, 1)); + if ( !(buf_safe(buf, 1)) ) + { + return; + } ++buf->len; /* move head byte of payload to tail */ @@ -70,7 +73,10 @@ stub_compress(struct buffer *buf, struct buffer work, else { uint8_t *header = buf_prepend(buf, 1); - *header = NO_COMPRESS_BYTE; + if (header) + { + *header = NO_COMPRESS_BYTE; + } } } diff --git a/src/openvpn/lzo.c b/src/openvpn/lzo.c index f75486565..a9de5fa26 100644 --- a/src/openvpn/lzo.c +++ b/src/openvpn/lzo.c @@ -202,7 +202,10 @@ lzo_compress(struct buffer *buf, struct buffer work, else { uint8_t *header = buf_prepend(buf, 1); - *header = NO_COMPRESS_BYTE; + if (header) + { + *header = NO_COMPRESS_BYTE; + } } } -- 2.47.2