]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
tls: force 'raw' reassembly after each record
authorVictor Julien <victor@inliniac.net>
Fri, 1 May 2015 13:12:47 +0000 (15:12 +0200)
committerVictor Julien <victor@inliniac.net>
Thu, 7 May 2015 09:45:15 +0000 (11:45 +0200)
Trigger raw reassembly after each record and after the handshake.

src/app-layer-ssl.c

index fc7583b1d0c4a1fdec2e5bab5cb8ec70d56276a7..d980b00abd67b0e1b3408270802439897057e234 100644 (file)
@@ -897,6 +897,9 @@ static int SSLv3Decode(uint8_t direction, SSLState *ssl_state,
                 if (ssl_state->curr_connp->bytes_processed == ssl_state->curr_connp->record_length + SSLV3_RECORD_HDR_LEN) {
                     SSLParserReset(ssl_state);
                 }
+
+                SCLogDebug("trigger RAW! (post HS)");
+                AppLayerParserTriggerRawStreamReassembly(ssl_state->f);
                 return parsed;
             }
 
@@ -920,6 +923,10 @@ static int SSLv3Decode(uint8_t direction, SSLState *ssl_state,
             AppLayerDecoderEventsSetEvent(ssl_state->f, TLS_DECODER_EVENT_INVALID_SSL_RECORD);
             return -1;
         }
+
+        SCLogDebug("record complete, trigger RAW");
+        AppLayerParserTriggerRawStreamReassembly(ssl_state->f);
+
         /* looks like we have another record */
         uint32_t diff = ssl_state->curr_connp->record_length + SSLV3_RECORD_HDR_LEN - ssl_state->curr_connp->bytes_processed;
         parsed += diff;