From: Victor Julien Date: Sat, 21 Jan 2023 11:01:46 +0000 (+0100) Subject: streaming: add sbcfg to StreamingBufferAppend X-Git-Tag: suricata-7.0.0-rc1~122 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=30ee9165b5da5351ee51d1f1913922086d1492b3;p=thirdparty%2Fsuricata.git streaming: add sbcfg to StreamingBufferAppend --- diff --git a/src/app-layer-htp-body.c b/src/app-layer-htp-body.c index 15bab12175..3e4ec5b934 100644 --- a/src/app-layer-htp-body.c +++ b/src/app-layer-htp-body.c @@ -70,7 +70,7 @@ int HtpBodyAppendChunk(const HTPCfgDir *hcfg, HtpBody *body, SCReturnInt(-1); } - if (StreamingBufferAppend(body->sb, &bd->sbseg, data, len) != 0) { + if (StreamingBufferAppend(body->sb, &hcfg->sbcfg, &bd->sbseg, data, len) != 0) { HTPFree(bd, sizeof(HtpBodyChunk)); SCReturnInt(-1); } diff --git a/src/util-streaming-buffer.c b/src/util-streaming-buffer.c index 323281eada..396a823e56 100644 --- a/src/util-streaming-buffer.c +++ b/src/util-streaming-buffer.c @@ -863,8 +863,8 @@ StreamingBufferSegment *StreamingBufferAppendRaw(StreamingBuffer *sb, const uint return NULL; } -int StreamingBufferAppend(StreamingBuffer *sb, StreamingBufferSegment *seg, - const uint8_t *data, uint32_t data_len) +int StreamingBufferAppend(StreamingBuffer *sb, const StreamingBufferConfig *cfg, + StreamingBufferSegment *seg, const uint8_t *data, uint32_t data_len) { BUG_ON(seg == NULL); @@ -1650,9 +1650,9 @@ static int StreamingBufferTest02(void) FAIL_IF(sb == NULL); StreamingBufferSegment seg1; - FAIL_IF(StreamingBufferAppend(sb, &seg1, (const uint8_t *)"ABCDEFGH", 8) != 0); + FAIL_IF(StreamingBufferAppend(sb, &cfg, &seg1, (const uint8_t *)"ABCDEFGH", 8) != 0); StreamingBufferSegment seg2; - FAIL_IF(StreamingBufferAppend(sb, &seg2, (const uint8_t *)"01234567", 8) != 0); + FAIL_IF(StreamingBufferAppend(sb, &cfg, &seg2, (const uint8_t *)"01234567", 8) != 0); FAIL_IF(sb->region.stream_offset != 0); FAIL_IF(sb->region.buf_offset != 16); FAIL_IF(seg1.stream_offset != 0); @@ -1670,7 +1670,7 @@ static int StreamingBufferTest02(void) FAIL_IF_NOT(sb->head == RB_MIN(SBB, &sb->sbb_tree)); StreamingBufferSegment seg3; - FAIL_IF(StreamingBufferAppend(sb, &seg3, (const uint8_t *)"QWERTY", 6) != 0); + FAIL_IF(StreamingBufferAppend(sb, &cfg, &seg3, (const uint8_t *)"QWERTY", 6) != 0); FAIL_IF(sb->region.stream_offset != 6); FAIL_IF(sb->region.buf_offset != 16); FAIL_IF(seg3.stream_offset != 16); @@ -1706,7 +1706,7 @@ static int StreamingBufferTest03(void) FAIL_IF(sb == NULL); StreamingBufferSegment seg1; - FAIL_IF(StreamingBufferAppend(sb, &seg1, (const uint8_t *)"ABCDEFGH", 8) != 0); + FAIL_IF(StreamingBufferAppend(sb, &cfg, &seg1, (const uint8_t *)"ABCDEFGH", 8) != 0); StreamingBufferSegment seg2; FAIL_IF(StreamingBufferInsertAt(sb, &cfg, &seg2, (const uint8_t *)"01234567", 8, 14) != 0); FAIL_IF(sb->region.stream_offset != 0); @@ -1761,7 +1761,7 @@ static int StreamingBufferTest04(void) FAIL_IF(sb == NULL); StreamingBufferSegment seg1; - FAIL_IF(StreamingBufferAppend(sb, &seg1, (const uint8_t *)"ABCDEFGH", 8) != 0); + FAIL_IF(StreamingBufferAppend(sb, &cfg, &seg1, (const uint8_t *)"ABCDEFGH", 8) != 0); FAIL_IF(!RB_EMPTY(&sb->sbb_tree)); StreamingBufferSegment seg2; FAIL_IF(StreamingBufferInsertAt(sb, &cfg, &seg2, (const uint8_t *)"01234567", 8, 14) != 0); @@ -1852,7 +1852,7 @@ static int StreamingBufferTest06(void) FAIL_IF(sb == NULL); StreamingBufferSegment seg1; - FAIL_IF(StreamingBufferAppend(sb, &seg1, (const uint8_t *)"A", 1) != 0); + FAIL_IF(StreamingBufferAppend(sb, &cfg, &seg1, (const uint8_t *)"A", 1) != 0); StreamingBufferSegment seg2; FAIL_IF(StreamingBufferInsertAt(sb, &cfg, &seg2, (const uint8_t *)"C", 1, 2) != 0); Dump(sb); @@ -2003,7 +2003,7 @@ static int StreamingBufferTest08(void) FAIL_IF_NOT(sb->head == RB_MIN(SBB, &sb->sbb_tree)); StreamingBufferSegment seg6; - FAIL_IF(StreamingBufferAppend(sb, &seg6, (const uint8_t *)"abcdefghij", 10) != 0); + FAIL_IF(StreamingBufferAppend(sb, &cfg, &seg6, (const uint8_t *)"abcdefghij", 10) != 0); Dump(sb); sbb1 = RB_MIN(SBB, &sb->sbb_tree); FAIL_IF_NULL(sbb1); diff --git a/src/util-streaming-buffer.h b/src/util-streaming-buffer.h index 4e7a5ee112..0dd46c9b97 100644 --- a/src/util-streaming-buffer.h +++ b/src/util-streaming-buffer.h @@ -165,8 +165,8 @@ void StreamingBufferSlideToOffset( StreamingBufferSegment *StreamingBufferAppendRaw(StreamingBuffer *sb, const uint8_t *data, uint32_t data_len) WARN_UNUSED; -int StreamingBufferAppend(StreamingBuffer *sb, StreamingBufferSegment *seg, - const uint8_t *data, uint32_t data_len) WARN_UNUSED; +int StreamingBufferAppend(StreamingBuffer *sb, const StreamingBufferConfig *cfg, + StreamingBufferSegment *seg, const uint8_t *data, uint32_t data_len) WARN_UNUSED; int StreamingBufferAppendNoTrack(StreamingBuffer *sb, const StreamingBufferConfig *cfg, const uint8_t *data, uint32_t data_len) WARN_UNUSED; int StreamingBufferInsertAt(StreamingBuffer *sb, const StreamingBufferConfig *cfg, diff --git a/src/util-unittest-helper.c b/src/util-unittest-helper.c index ed80afe21d..f19372bc86 100644 --- a/src/util-unittest-helper.c +++ b/src/util-unittest-helper.c @@ -542,7 +542,7 @@ int UTHAddStreamToFlow(Flow *f, int direction, StreamingBufferSegment seg; TcpStream *stream = direction == 0 ? &ssn->client : &ssn->server; - int r = StreamingBufferAppend(&stream->sb, &seg, data, data_len); + int r = StreamingBufferAppend(&stream->sb, &stream_config.sbcnf, &seg, data, data_len); FAIL_IF_NOT(r == 0); stream->last_ack += data_len; return 1;