]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
stream: add seq min and max; use in segment compare 8563/head
authorVictor Julien <vjulien@oisf.net>
Tue, 28 Feb 2023 14:00:09 +0000 (15:00 +0100)
committerVictor Julien <vjulien@oisf.net>
Tue, 28 Feb 2023 14:00:25 +0000 (15:00 +0100)
src/stream-tcp-inline.c
src/stream-tcp-private.h

index c68df6f04a82a96ca060eab695163bf543be1d1a..80783ef035a6032d4341c392a0edfa4a521b1324 100644 (file)
@@ -85,10 +85,10 @@ int StreamTcpInlineSegmentCompare(const TcpStream *stream,
         SCLogDebug("pkt_end %u, seg_end %u", pkt_end, seg_end);
 
         /* get the minimal seg*_end */
-        uint32_t end = (SEQ_GT(pkt_end, seg_end)) ? seg_end : pkt_end;
+        uint32_t end = SEQ_MIN(seg_end, pkt_end);
         /* and the max seq */
-        uint32_t seq = (SEQ_LT(pkt_seq, seg_seq)) ? seg->seq : pkt_seq;
-        seq = (SEQ_GT(seq, stream->base_seq)) ? seq : stream->base_seq;
+        uint32_t seq = SEQ_MAX(pkt_seq, seg_seq);
+        seq = SEQ_MAX(seq, stream->base_seq);
         SCLogDebug("seq %u, end %u", seq, end);
 
         uint32_t pkt_off = seq - pkt_seq;
index c148225ab12ec368634b29de7b22a3c545dacbad..d1a33989ba56b1d7bd1d8bc441ae1bca8e7787e2 100644 (file)
@@ -254,6 +254,8 @@ enum TcpState {
 #define SEQ_LEQ(a,b) ((int32_t)((a) - (b)) <= 0)
 #define SEQ_GT(a,b)  ((int32_t)((a) - (b)) >  0)
 #define SEQ_GEQ(a,b) ((int32_t)((a) - (b)) >= 0)
+#define SEQ_MIN(a, b) (SEQ_LT((a), (b)) ? (a) : (b))
+#define SEQ_MAX(a, b) (SEQ_GT((a), (b)) ? (a) : (b))
 
 #define STREAMTCP_SET_RA_BASE_SEQ(stream, seq) { \
     do { \