From: Jeff Lucovsky Date: Sun, 7 Jul 2024 14:29:00 +0000 (-0400) Subject: smtp: Prevent error messages on packet path X-Git-Tag: suricata-8.0.0-beta1~867 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a115acf2088a6bf4c9c9524991550c05b0bb5ca9;p=thirdparty%2Fsuricata.git smtp: Prevent error messages on packet path Issue: 7126 This commit abandons the use of StringParseUint32 which generates an error message of there are non-numeric characters. The SMTP parser had used this function on the packet path; this commit uses strtoul instead. An example of the content causing the error message to be emitted: 3460 LAST --- diff --git a/src/app-layer-smtp.c b/src/app-layer-smtp.c index 7000b2ec0d..03260bfd3a 100644 --- a/src/app-layer-smtp.c +++ b/src/app-layer-smtp.c @@ -1004,7 +1004,7 @@ static int SMTPParseCommandBDAT(SMTPState *state, const SMTPLine *line) /* decoder event */ return -1; } - // copy in temporary null-terminated buffer to call StringParseUint32 + // copy in temporary null-terminated buffer for conversion char strbuf[24]; int len = 23; if (line->len - i < len) { @@ -1012,7 +1012,7 @@ static int SMTPParseCommandBDAT(SMTPState *state, const SMTPLine *line) } memcpy(strbuf, line->buf + i, len); strbuf[len] = '\0'; - if (StringParseUint32(&state->bdat_chunk_len, 10, 0, strbuf) < 0) { + if (ByteExtractStringUint32(&state->bdat_chunk_len, 10, 0, strbuf) < 0) { /* decoder event */ return -1; }