#ifdef UNITTESTS
#include "detect-engine-alert.h"
+static SigMatch *GetMatches(Signature *s, const int list)
+{
+ SigMatch *sm = DetectBufferGetFirstSigMatch(s, list);
+ if (sm == NULL && list < DETECT_SM_LIST_MAX) {
+ sm = s->init_data->smlists[list];
+ }
+ return sm;
+}
+
static int DetectFastPatternStickySingle(const char *sticky, const int list)
{
DetectEngineCtx *de_ctx = DetectEngineCtxInit();
sticky ? sticky : "", sticky ? "; " : " ");
Signature *s = DetectEngineAppendSig(de_ctx, string);
FAIL_IF_NULL(s);
- SigMatch *sm = de_ctx->sig_list->sm_lists[list];
+ SigMatch *sm = GetMatches(s, list);
FAIL_IF_NULL(sm);
FAIL_IF_NOT(sm->type == DETECT_CONTENT);
DetectContentData *cd = (DetectContentData *)sm->ctx;
sticky ? sticky : "", sticky ? "; " : " ");
Signature *s = DetectEngineAppendSig(de_ctx, string);
FAIL_IF_NULL(s);
- SigMatch *sm = de_ctx->sig_list->sm_lists[list];
+ SigMatch *sm = GetMatches(s, list);
FAIL_IF_NULL(sm);
FAIL_IF_NOT(sm->type == DETECT_CONTENT);
DetectContentData *cd = (DetectContentData *)sm->ctx;
sticky ? sticky : "", sticky ? "; " : " ");
Signature *s = DetectEngineAppendSig(de_ctx, string);
FAIL_IF_NULL(s);
- SigMatch *sm = de_ctx->sig_list->sm_lists[list];
+ SigMatch *sm = GetMatches(s, list);
FAIL_IF_NULL(sm);
FAIL_IF_NOT(sm->type == DETECT_CONTENT);
DetectContentData *cd = (DetectContentData *)sm->ctx;
sticky ? sticky : "", sticky ? "; " : " ");
Signature *s = DetectEngineAppendSig(de_ctx, string);
FAIL_IF_NULL(s);
- SigMatch *sm = de_ctx->sig_list->sm_lists[list];
+ SigMatch *sm = GetMatches(s, list);
FAIL_IF_NULL(sm);
FAIL_IF_NOT(sm->type == DETECT_CONTENT);
DetectContentData *cd = (DetectContentData *)sm->ctx;
sticky ? sticky : "", sticky ? "; " : " ");
Signature *s = DetectEngineAppendSig(de_ctx, string);
FAIL_IF_NULL(s);
- SigMatch *sm = de_ctx->sig_list->sm_lists[list];
+ SigMatch *sm = GetMatches(s, list);
FAIL_IF_NULL(sm);
FAIL_IF_NOT(sm->type == DETECT_CONTENT);
DetectContentData *cd = (DetectContentData *)sm->ctx;
sticky ? sticky : "", sticky ? "; " : " ");
Signature *s = DetectEngineAppendSig(de_ctx, string);
FAIL_IF_NULL(s);
- SigMatch *sm = de_ctx->sig_list->sm_lists[list];
+ SigMatch *sm = GetMatches(s, list);
FAIL_IF_NULL(sm);
FAIL_IF_NOT(sm->type == DETECT_CONTENT);
DetectContentData *cd = (DetectContentData *)sm->ctx;
sticky ? sticky : "", sticky ? "; " : " ", sticky ? sticky : "", sticky ? "; " : " ");
s = DetectEngineAppendSig(de_ctx, string);
FAIL_IF_NULL(s);
- sm = de_ctx->sig_list->sm_lists[list];
+ sm = GetMatches(s, list);
FAIL_IF_NULL(sm);
FAIL_IF_NULL(sm->next);
FAIL_IF_NOT(sm->type == DETECT_CONTENT);
sticky ? sticky : "", sticky ? "; " : " ");
s = DetectEngineAppendSig(de_ctx, string);
FAIL_IF_NULL(s);
- sm = de_ctx->sig_list->sm_lists[list];
+ sm = GetMatches(s, list);
FAIL_IF_NULL(sm);
FAIL_IF_NULL(sm->next);
FAIL_IF_NOT(sm->type == DETECT_CONTENT);
sticky ? sticky : "", sticky ? "; " : " ");
s = DetectEngineAppendSig(de_ctx, string);
FAIL_IF_NULL(s);
- sm = de_ctx->sig_list->sm_lists[list];
+ sm = GetMatches(s, list);
FAIL_IF_NULL(sm);
FAIL_IF_NULL(sm->next);
FAIL_IF_NOT(sm->type == DETECT_CONTENT);
sticky ? sticky : "", sticky ? "; " : " ");
s = DetectEngineAppendSig(de_ctx, string);
FAIL_IF_NULL(s);
- sm = de_ctx->sig_list->sm_lists[list];
+ sm = GetMatches(s, list);
FAIL_IF_NULL(sm);
FAIL_IF_NULL(sm->next);
FAIL_IF_NOT(sm->type == DETECT_CONTENT);
sticky ? sticky : "", sticky ? "; " : " ");
s = DetectEngineAppendSig(de_ctx, string);
FAIL_IF_NULL(s);
- sm = de_ctx->sig_list->sm_lists[list];
+ sm = GetMatches(s, list);
FAIL_IF_NULL(sm);
FAIL_IF_NULL(sm->next);
FAIL_IF_NOT(sm->type == DETECT_CONTENT);
sticky ? sticky : "", sticky ? "; " : " ", sticky ? sticky : "", sticky ? "; " : " ");
s = DetectEngineAppendSig(de_ctx, string);
FAIL_IF_NULL(s);
- sm = de_ctx->sig_list->sm_lists[list];
+ sm = GetMatches(s, list);
FAIL_IF_NULL(sm);
FAIL_IF_NULL(sm->next);
FAIL_IF_NOT(sm->type == DETECT_CONTENT);
sticky ? sticky : "", sticky ? "; " : " ");
Signature *s = DetectEngineAppendSig(de_ctx, string);
FAIL_IF_NULL(s);
- SigMatch *sm = de_ctx->sig_list->sm_lists[list];
+ SigMatch *sm = GetMatches(s, list);
FAIL_IF_NULL(sm);
FAIL_IF_NOT(sm->type == DETECT_CONTENT);
DetectContentData *cd = (DetectContentData *)sm->ctx;
sticky ? sticky : "", sticky ? "; " : " ");
s = DetectEngineAppendSig(de_ctx, string);
FAIL_IF_NULL(s);
- sm = de_ctx->sig_list->sm_lists[list];
+ sm = GetMatches(s, list);
FAIL_IF_NULL(sm);
FAIL_IF_NOT(sm->type == DETECT_CONTENT);
cd = (DetectContentData *)sm->ctx;
sticky ? sticky : "", sticky ? "; " : " ");
Signature *s = DetectEngineAppendSig(de_ctx, string);
FAIL_IF_NULL(s);
- SigMatch *sm = de_ctx->sig_list->sm_lists[list];
+ SigMatch *sm = GetMatches(s, list);
FAIL_IF_NULL(sm);
FAIL_IF_NOT(sm->type == DETECT_CONTENT);
DetectContentData *cd = (DetectContentData *)sm->ctx;
sticky ? sticky : "", sticky ? "; " : " ");
s = DetectEngineAppendSig(de_ctx, string);
FAIL_IF_NULL(s);
- sm = de_ctx->sig_list->sm_lists[list];
+ sm = GetMatches(s, list);
FAIL_IF_NULL(sm);
FAIL_IF_NOT(sm->type == DETECT_CONTENT);
cd = (DetectContentData *)sm->ctx;
"(content:\"one\"; prefilter; sid:1;)";
Signature *s = DetectEngineAppendSig(de_ctx, string);
FAIL_IF_NULL(s);
- SigMatch *sm = de_ctx->sig_list->sm_lists[DETECT_SM_LIST_PMATCH];
+ SigMatch *sm = s->init_data->smlists[DETECT_SM_LIST_PMATCH];
FAIL_IF_NULL(sm);
FAIL_IF_NOT(sm->type == DETECT_CONTENT);
DetectContentData *cd = (DetectContentData *)sm->ctx;