smtp: fix null deref with config option body md5

Ticket: #6279

If we have the smtp body beginning without headers, we need to
create the md5 context and right away and supply data to it.
Otherwise, on the next line being processed, md5_ctx will be
NULL but body_begin will have been reset to 0
pull/9485/head
Philippe Antoine 2 years ago committed by Victor Julien
parent 00e00254ea
commit c6afee64d5

@ -1766,6 +1766,12 @@ static int FindMimeHeader(const uint8_t *buf, uint32_t blen,
state->body_begin = 1;
state->body_end = 0;
// Begin the body md5 computation if config asks so
if (MimeDecGetConfig()->body_md5 && state->md5_ctx == NULL) {
state->md5_ctx = SCMd5New();
SCMd5Update(state->md5_ctx, buf, blen + state->current_line_delimiter_len);
}
ret = ProcessBodyLine(buf, blen, state);
if (ret != MIME_DEC_OK) {
SCLogDebug("Error: ProcessBodyLine() function failed");

Loading…
Cancel
Save