]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
pgsql/parser: fix response message length
authorJuliana Fajardini <jufajardini@gmail.com>
Fri, 7 Feb 2025 15:16:53 +0000 (12:16 -0300)
committerVictor Julien <victor@inliniac.net>
Wed, 19 Feb 2025 08:21:36 +0000 (09:21 +0100)
Some backend messages can be the shortest pgsql length possible,
4 bytes, but the parser expectd all messages to be longer than that.

Related to
Bug #5524

rust/src/pgsql/parser.rs

index aa34acb4e50ba3558afb1372a222a03315fd7dc3..2656b48042875c54e40594353aba43e14ce692ac 100644 (file)
@@ -727,7 +727,7 @@ pub fn parse_request(i: &[u8]) -> IResult<&[u8], PgsqlFEMessage> {
         b'X' => parse_terminate_message(i)?,
         _ => {
             let (i, identifier) = be_u8(i)?;
-            let (i, length) = verify(be_u32, |&x| x > PGSQL_LENGTH_FIELD)(i)?;
+            let (i, length) = verify(be_u32, |&x| x >= PGSQL_LENGTH_FIELD)(i)?;
             let (i, payload) = take(length - PGSQL_LENGTH_FIELD)(i)?;
             let unknown = PgsqlFEMessage::UnknownMessageType(RegularPacket {
                 identifier,