static inline StreamingBufferRegion *InitBufferRegion(StreamingBuffer *sb, const uint32_t min_size)
{
+ if (sb->regions == USHRT_MAX ||
+ (sb->cfg->max_regions != 0 && sb->regions >= sb->cfg->max_regions)) {
+ SCLogDebug("max regions reached");
+ return NULL;
+ }
+
StreamingBufferRegion *aux_r = CALLOC(sb->cfg, 1, sizeof(*aux_r));
if (aux_r == NULL)
return NULL;
aux_r->buf_size = MAX(sb->cfg->buf_size, min_size);
sb->regions++;
sb->max_regions = MAX(sb->regions, sb->max_regions);
-
- BUG_ON(sb->regions > 100);
return aux_r;
}
static int StreamingBufferTest02(void)
{
- StreamingBufferConfig cfg = { 8, 24, NULL, NULL, NULL };
+ StreamingBufferConfig cfg = { 8, 24, 1, NULL, NULL, NULL };
StreamingBuffer *sb = StreamingBufferInit(&cfg);
FAIL_IF(sb == NULL);
static int StreamingBufferTest03(void)
{
- StreamingBufferConfig cfg = { 8, 24, NULL, NULL, NULL };
+ StreamingBufferConfig cfg = { 8, 24, 1, NULL, NULL, NULL };
StreamingBuffer *sb = StreamingBufferInit(&cfg);
FAIL_IF(sb == NULL);
static int StreamingBufferTest04(void)
{
- StreamingBufferConfig cfg = { 8, 16, NULL, NULL, NULL };
+ StreamingBufferConfig cfg = { 8, 16, 1, NULL, NULL, NULL };
StreamingBuffer *sb = StreamingBufferInit(&cfg);
FAIL_IF(sb == NULL);
/** \test lots of gaps in block list */
static int StreamingBufferTest06(void)
{
- StreamingBufferConfig cfg = { 8, 16, NULL, NULL, NULL };
+ StreamingBufferConfig cfg = { 8, 16, 1, NULL, NULL, NULL };
StreamingBuffer *sb = StreamingBufferInit(&cfg);
FAIL_IF(sb == NULL);
/** \test lots of gaps in block list */
static int StreamingBufferTest07(void)
{
- StreamingBufferConfig cfg = { 8, 16, NULL, NULL, NULL };
+ StreamingBufferConfig cfg = { 8, 16, 1, NULL, NULL, NULL };
StreamingBuffer *sb = StreamingBufferInit(&cfg);
FAIL_IF(sb == NULL);
/** \test lots of gaps in block list */
static int StreamingBufferTest08(void)
{
- StreamingBufferConfig cfg = { 8, 16, NULL, NULL, NULL };
+ StreamingBufferConfig cfg = { 8, 16, 1, NULL, NULL, NULL };
StreamingBuffer *sb = StreamingBufferInit(&cfg);
FAIL_IF(sb == NULL);
/** \test lots of gaps in block list */
static int StreamingBufferTest09(void)
{
- StreamingBufferConfig cfg = { 8, 16, NULL, NULL, NULL };
+ StreamingBufferConfig cfg = { 8, 16, 1, NULL, NULL, NULL };
StreamingBuffer *sb = StreamingBufferInit(&cfg);
FAIL_IF(sb == NULL);
/** \test lots of gaps in block list */
static int StreamingBufferTest10(void)
{
- StreamingBufferConfig cfg = { 8, 16, NULL, NULL, NULL };
+ StreamingBufferConfig cfg = { 8, 16, 1, NULL, NULL, NULL };
StreamingBuffer *sb = StreamingBufferInit(&cfg);
FAIL_IF(sb == NULL);