]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
tls: more permissive empty data eof check 12607/head 12611/head
authorVictor Julien <vjulien@oisf.net>
Thu, 13 Feb 2025 13:30:39 +0000 (14:30 +0100)
committerVictor Julien <vjulien@oisf.net>
Mon, 17 Feb 2025 19:55:04 +0000 (20:55 +0100)
If not all data is ACK'd during the FIN session shutdown, the last calls
to the parser can be with a non-NULL data pointer, but a input length of
0. This wasn't considered by the EOF check, which then lead to it being
seen as an error. No event was raised, but the tls error stats were
incremented.

Bug: #7554.
(cherry picked from commit 471bde442680cd22f4ca9493da7a824dfb8f8197)

src/app-layer-ssl.c

index 7dff89dac6c3a6efb7b80ef004149741ffd36c1b..43d01c7885cab6b652624fb18e7944e5a684f507 100644 (file)
@@ -2671,7 +2671,7 @@ static AppLayerResult SSLDecode(Flow *f, uint8_t direction, void *alstate,
     const uint8_t *init_input = input;
     int32_t input_len = (int32_t)StreamSliceGetDataLen(&stream_slice);
 
-    if (input == NULL &&
+    if ((input == NULL || input_len == 0) &&
             ((direction == 0 && AppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TS)) ||
                     (direction == 1 &&
                             AppLayerParserStateIssetFlag(pstate, APP_LAYER_PARSER_EOF_TC)))) {