From a02406820f24e3368a1c752a1a81b03b9b5953e5 Mon Sep 17 00:00:00 2001 From: Philippe Antoine Date: Wed, 12 Jul 2023 15:46:27 +0200 Subject: [PATCH] base64: further simplification --- src/util-base64.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/src/util-base64.c b/src/util-base64.c index 0ce79a60077c..53ab4222f16e 100644 --- a/src/util-base64.c +++ b/src/util-base64.c @@ -183,21 +183,8 @@ Base64Ecode DecodeBase64(uint8_t *dest, uint32_t dest_size, const uint8_t *src, } } - if (bbidx > 0 && !valid && mode == BASE64_MODE_RFC4648) { - /* Decoded bytes for 1 or 2 base64 encoded bytes is 1 */ - padding += bbidx > 1 ? B64_BLOCK - bbidx : 2; - uint32_t numDecoded_blk = ASCII_BLOCK - (padding < B64_BLOCK ? padding : ASCII_BLOCK); - if (dest_size < *decoded_bytes + numDecoded_blk) { - SCLogDebug("Destination buffer full"); - ecode = BASE64_ECODE_BUF; - numDecoded_blk = dest_size - *decoded_bytes; - } - *decoded_bytes += numDecoded_blk; - DecodeBase64Block(dptr, b64, numDecoded_blk); - *consumed_bytes += bbidx; - } else if (bbidx > 0 && valid && mode != BASE64_MODE_RFC2045) { - /* Finish remaining b64 bytes by padding */ - /* Decode remaining */ + if (bbidx > 0 && mode != BASE64_MODE_RFC2045 && (valid || mode == BASE64_MODE_RFC4648)) { + /* Finish remaining b64 bytes by padding and decode remaining */ padding += B64_BLOCK - bbidx; uint32_t numDecoded_blk = ASCII_BLOCK - (padding < B64_BLOCK ? padding : ASCII_BLOCK); if (dest_size < *decoded_bytes + numDecoded_blk) {