diff
1397             uint32_t numDecoded_blk = ASCII_BLOCK - (padding < B64_BLOCK ? padding : ASCII_BLOCK);
1398             if (dest_size < *decoded_bytes + numDecoded_blk) {
1399                 SCLogDebug("Destination buffer full");
1400                 ecode = BASE64_ECODE_BUF;
1401                 break;
1402             }
+                if (*decoded_bytes + numDecoded_blk > dest_size) {
+                    SCLogDebug("Buffer overflow prevented");
+                    ecode = BASE64_ECODE_BUF;
+                    break;
+                }
1405             DecodeBase64Block(dptr, b64);
