replace all sm lists (match, pmatch, dmatch, umatch, amatch, tmatch) with an array Signature->sm_lists[]. Replace all Signature->match instances in the engine with Signature->sm_lists[DETECT_SM_LIST_MATCH]

remotes/origin/master-1.1.x
Anoop Saldanha 15 years ago committed by Victor Julien
parent 3656879aa0
commit 82fd581b64

@ -716,7 +716,7 @@ int DetectContentLongPatternMatchTest(uint8_t *raw_eth_pkt, uint16_t pktsize, ch
}
SCLogDebug("---DetectContentLongPatternMatchTest---");
DetectContentPrintAll(de_ctx->sig_list->match);
DetectContentPrintAll(de_ctx->sig_list->sm_lists[DETECT_SM_LIST_MATCH]);
SigGroupBuild(de_ctx);
DetectEngineThreadCtxInit(&th_v, (void *)de_ctx, (void *)&det_ctx);

@ -856,10 +856,10 @@ int DetectCsumIPV4ValidArgsTestParse01(void)
result &= (DetectIPV4CsumSetup(NULL, &s, "\"VALID\"") == 0);
result &= (DetectIPV4CsumSetup(NULL, &s, "\"iNvaLid\"") == 0);
while (s.match != NULL) {
DetectIPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
while (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
DetectIPV4CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
@ -880,10 +880,10 @@ int DetectCsumIPV4InValidArgsTestParse02(void)
result &= (DetectIPV4CsumSetup(NULL, &s, "VALieD") == -1);
result &= (DetectIPV4CsumSetup(NULL, &s, "iNvamid") == -1);
while (s.match != NULL) {
DetectIPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
while (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
DetectIPV4CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
@ -901,28 +901,28 @@ int DetectCsumIPV4ValidArgsTestParse03(void)
result = (DetectIPV4CsumSetup(NULL, &s, "valid") == 0);
while (s.match != NULL) {
if (s.match->ctx != NULL) {
cd = (DetectCsumData *)s.match->ctx;
while (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
if (s.sm_lists[DETECT_SM_LIST_MATCH]->ctx != NULL) {
cd = (DetectCsumData *)s.sm_lists[DETECT_SM_LIST_MATCH]->ctx;
result &= (cd->valid == 1);
}
DetectIPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
DetectIPV4CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
s.match = NULL;
s.sm_lists[DETECT_SM_LIST_MATCH] = NULL;
result &= (DetectIPV4CsumSetup(NULL, &s, "INVALID") == 0);
if (s.match != NULL) {
if (s.match->ctx != NULL) {
cd = (DetectCsumData *)s.match->ctx;
if (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
if (s.sm_lists[DETECT_SM_LIST_MATCH]->ctx != NULL) {
cd = (DetectCsumData *)s.sm_lists[DETECT_SM_LIST_MATCH]->ctx;
result &= (cd->valid == 0);
}
DetectIPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
DetectIPV4CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
@ -943,10 +943,10 @@ int DetectCsumICMPV4ValidArgsTestParse01(void)
result &= (DetectICMPV4CsumSetup(NULL, &s, "VALID") == 0);
result &= (DetectICMPV4CsumSetup(NULL, &s, "iNvaLid") == 0);
while (s.match != NULL) {
DetectICMPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
while (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
DetectICMPV4CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
@ -966,10 +966,10 @@ int DetectCsumICMPV4InValidArgsTestParse02(void) {
result &= (DetectICMPV4CsumSetup(NULL, &s, "VALieD") == -1);
result &= (DetectICMPV4CsumSetup(NULL, &s, "iNvamid") == -1);
while (s.match != NULL) {
DetectICMPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
while (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
DetectICMPV4CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
@ -986,28 +986,28 @@ int DetectCsumICMPV4ValidArgsTestParse03(void) {
result = (DetectICMPV4CsumSetup(NULL, &s, "valid") == 0);
while (s.match != NULL) {
if (s.match->ctx != NULL) {
cd = (DetectCsumData *)s.match->ctx;
while (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
if (s.sm_lists[DETECT_SM_LIST_MATCH]->ctx != NULL) {
cd = (DetectCsumData *)s.sm_lists[DETECT_SM_LIST_MATCH]->ctx;
result &= (cd->valid == 1);
}
DetectICMPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
DetectICMPV4CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
s.match = NULL;
s.sm_lists[DETECT_SM_LIST_MATCH] = NULL;
result &= (DetectICMPV4CsumSetup(NULL, &s, "INVALID") == 0);
if (s.match != NULL) {
if (s.match->ctx != NULL) {
cd = (DetectCsumData *)s.match->ctx;
if (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
if (s.sm_lists[DETECT_SM_LIST_MATCH]->ctx != NULL) {
cd = (DetectCsumData *)s.sm_lists[DETECT_SM_LIST_MATCH]->ctx;
result &= (cd->valid == 0);
}
DetectICMPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
DetectICMPV4CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
@ -1028,10 +1028,10 @@ int DetectCsumTCPV4ValidArgsTestParse01(void)
result &= (DetectTCPV4CsumSetup(NULL, &s, "VALID") == 0);
result &= (DetectTCPV4CsumSetup(NULL, &s, "iNvaLid") == 0);
while (s.match != NULL) {
DetectTCPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
while (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
DetectTCPV4CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
@ -1051,10 +1051,10 @@ int DetectCsumTCPV4InValidArgsTestParse02(void) {
result &= (DetectTCPV4CsumSetup(NULL, &s, "VALieD") == -1);
result &= (DetectTCPV4CsumSetup(NULL, &s, "iNvamid") == -1);
while (s.match != NULL) {
DetectTCPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
while (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
DetectTCPV4CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
@ -1071,28 +1071,28 @@ int DetectCsumTCPV4ValidArgsTestParse03(void) {
result = (DetectTCPV4CsumSetup(NULL, &s, "valid") == 0);
while (s.match != NULL) {
if (s.match->ctx != NULL) {
cd = (DetectCsumData *)s.match->ctx;
while (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
if (s.sm_lists[DETECT_SM_LIST_MATCH]->ctx != NULL) {
cd = (DetectCsumData *)s.sm_lists[DETECT_SM_LIST_MATCH]->ctx;
result &= (cd->valid == 1);
}
DetectTCPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
DetectTCPV4CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
s.match = NULL;
s.sm_lists[DETECT_SM_LIST_MATCH] = NULL;
result &= (DetectTCPV4CsumSetup(NULL, &s, "INVALID") == 0);
if (s.match != NULL) {
if (s.match->ctx != NULL) {
cd = (DetectCsumData *)s.match->ctx;
if (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
if (s.sm_lists[DETECT_SM_LIST_MATCH]->ctx != NULL) {
cd = (DetectCsumData *)s.sm_lists[DETECT_SM_LIST_MATCH]->ctx;
result &= (cd->valid == 0);
}
DetectTCPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
DetectTCPV4CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
@ -1113,10 +1113,10 @@ int DetectCsumUDPV4ValidArgsTestParse01(void)
result &= (DetectUDPV4CsumSetup(NULL, &s, "VALID") == 0);
result &= (DetectUDPV4CsumSetup(NULL, &s, "iNvaLid") == 0);
while (s.match != NULL) {
DetectUDPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
while (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
DetectUDPV4CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
@ -1136,10 +1136,10 @@ int DetectCsumUDPV4InValidArgsTestParse02(void) {
result &= (DetectUDPV4CsumSetup(NULL, &s, "VALieD") == -1);
result &= (DetectUDPV4CsumSetup(NULL, &s, "iNvamid") == -1);
while (s.match != NULL) {
DetectUDPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
while (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
DetectUDPV4CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
@ -1156,28 +1156,28 @@ int DetectCsumUDPV4ValidArgsTestParse03(void) {
result = (DetectUDPV4CsumSetup(NULL, &s, "valid") == 0);
while (s.match != NULL) {
if (s.match->ctx != NULL) {
cd = (DetectCsumData *)s.match->ctx;
while (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
if (s.sm_lists[DETECT_SM_LIST_MATCH]->ctx != NULL) {
cd = (DetectCsumData *)s.sm_lists[DETECT_SM_LIST_MATCH]->ctx;
result &= (cd->valid == 1);
}
DetectUDPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
DetectUDPV4CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
s.match = NULL;
s.sm_lists[DETECT_SM_LIST_MATCH] = NULL;
result &= (DetectUDPV4CsumSetup(NULL, &s, "INVALID") == 0);
if (s.match != NULL) {
if (s.match->ctx != NULL) {
cd = (DetectCsumData *)s.match->ctx;
if (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
if (s.sm_lists[DETECT_SM_LIST_MATCH]->ctx != NULL) {
cd = (DetectCsumData *)s.sm_lists[DETECT_SM_LIST_MATCH]->ctx;
result &= (cd->valid == 0);
}
DetectUDPV4CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
DetectUDPV4CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
@ -1198,10 +1198,10 @@ int DetectCsumTCPV6ValidArgsTestParse01(void)
result &= (DetectTCPV6CsumSetup(NULL, &s, "VALID") == 0);
result &= (DetectTCPV6CsumSetup(NULL, &s, "iNvaLid") == 0);
while (s.match != NULL) {
DetectTCPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
while (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
DetectTCPV6CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
@ -1221,10 +1221,10 @@ int DetectCsumTCPV6InValidArgsTestParse02(void) {
result &= (DetectTCPV6CsumSetup(NULL, &s, "VALieD") == -1);
result &= (DetectTCPV6CsumSetup(NULL, &s, "iNvamid") == -1);
while (s.match != NULL) {
DetectTCPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
while (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
DetectTCPV6CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
@ -1241,28 +1241,28 @@ int DetectCsumTCPV6ValidArgsTestParse03(void) {
result = (DetectTCPV6CsumSetup(NULL, &s, "valid") == 0);
while (s.match != NULL) {
if (s.match->ctx != NULL) {
cd = (DetectCsumData *)s.match->ctx;
while (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
if (s.sm_lists[DETECT_SM_LIST_MATCH]->ctx != NULL) {
cd = (DetectCsumData *)s.sm_lists[DETECT_SM_LIST_MATCH]->ctx;
result &= (cd->valid == 1);
}
DetectTCPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
DetectTCPV6CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
s.match = NULL;
s.sm_lists[DETECT_SM_LIST_MATCH] = NULL;
result &= (DetectTCPV6CsumSetup(NULL, &s, "INVALID") == 0);
if (s.match != NULL) {
if (s.match->ctx != NULL) {
cd = (DetectCsumData *)s.match->ctx;
if (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
if (s.sm_lists[DETECT_SM_LIST_MATCH]->ctx != NULL) {
cd = (DetectCsumData *)s.sm_lists[DETECT_SM_LIST_MATCH]->ctx;
result &= (cd->valid == 0);
}
DetectTCPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
DetectTCPV6CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
@ -1283,10 +1283,10 @@ int DetectCsumUDPV6ValidArgsTestParse01(void)
result &= (DetectUDPV6CsumSetup(NULL, &s, "VALID") == 0);
result &= (DetectUDPV6CsumSetup(NULL, &s, "iNvaLid") == 0);
while (s.match != NULL) {
DetectUDPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
while (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
DetectUDPV6CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
@ -1306,10 +1306,10 @@ int DetectCsumUDPV6InValidArgsTestParse02(void) {
result &= (DetectUDPV6CsumSetup(NULL, &s, "VALieD") == -1);
result &= (DetectUDPV6CsumSetup(NULL, &s, "iNvamid") == -1);
while (s.match != NULL) {
DetectUDPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
while (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
DetectUDPV6CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
@ -1326,28 +1326,28 @@ int DetectCsumUDPV6ValidArgsTestParse03(void) {
result = (DetectUDPV6CsumSetup(NULL, &s, "valid") == 0);
while (s.match != NULL) {
if (s.match->ctx != NULL) {
cd = (DetectCsumData *)s.match->ctx;
while (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
if (s.sm_lists[DETECT_SM_LIST_MATCH]->ctx != NULL) {
cd = (DetectCsumData *)s.sm_lists[DETECT_SM_LIST_MATCH]->ctx;
result &= (cd->valid == 1);
}
DetectUDPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
DetectUDPV6CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
s.match = NULL;
s.sm_lists[DETECT_SM_LIST_MATCH] = NULL;
result &= (DetectUDPV6CsumSetup(NULL, &s, "INVALID") == 0);
if (s.match != NULL) {
if (s.match->ctx != NULL) {
cd = (DetectCsumData *)s.match->ctx;
if (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
if (s.sm_lists[DETECT_SM_LIST_MATCH]->ctx != NULL) {
cd = (DetectCsumData *)s.sm_lists[DETECT_SM_LIST_MATCH]->ctx;
result &= (cd->valid == 0);
}
DetectUDPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
DetectUDPV6CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
@ -1368,10 +1368,10 @@ int DetectCsumICMPV6ValidArgsTestParse01(void)
result &= (DetectICMPV6CsumSetup(NULL, &s, "VALID") == 0);
result &= (DetectICMPV6CsumSetup(NULL, &s, "iNvaLid") == 0);
while (s.match != NULL) {
DetectICMPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
while (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
DetectICMPV6CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
@ -1391,10 +1391,10 @@ int DetectCsumICMPV6InValidArgsTestParse02(void) {
result &= (DetectICMPV6CsumSetup(NULL, &s, "VALieD") == -1);
result &= (DetectICMPV6CsumSetup(NULL, &s, "iNvamid") == -1);
while (s.match != NULL) {
DetectICMPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
while (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
DetectICMPV6CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
@ -1411,28 +1411,28 @@ int DetectCsumICMPV6ValidArgsTestParse03(void) {
result = (DetectICMPV6CsumSetup(NULL, &s, "valid") == 0);
while (s.match != NULL) {
if (s.match->ctx != NULL) {
cd = (DetectCsumData *)s.match->ctx;
while (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
if (s.sm_lists[DETECT_SM_LIST_MATCH]->ctx != NULL) {
cd = (DetectCsumData *)s.sm_lists[DETECT_SM_LIST_MATCH]->ctx;
result &= (cd->valid == 1);
}
DetectICMPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
DetectICMPV6CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}
s.match = NULL;
s.sm_lists[DETECT_SM_LIST_MATCH] = NULL;
result &= (DetectICMPV6CsumSetup(NULL, &s, "INVALID") == 0);
if (s.match != NULL) {
if (s.match->ctx != NULL) {
cd = (DetectCsumData *)s.match->ctx;
if (s.sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
if (s.sm_lists[DETECT_SM_LIST_MATCH]->ctx != NULL) {
cd = (DetectCsumData *)s.sm_lists[DETECT_SM_LIST_MATCH]->ctx;
result &= (cd->valid == 0);
}
DetectICMPV6CsumFree(s.match->ctx);
temp = s.match;
s.match = s.match->next;
DetectICMPV6CsumFree(s.sm_lists[DETECT_SM_LIST_MATCH]->ctx);
temp = s.sm_lists[DETECT_SM_LIST_MATCH];
s.sm_lists[DETECT_SM_LIST_MATCH] = s.sm_lists[DETECT_SM_LIST_MATCH]->next;
SCFree(temp);
}

@ -217,13 +217,13 @@ int DetectDetectionFilterSetup (DetectEngineCtx *de_ctx, Signature *s, char *raw
SigMatch *tmpm = NULL;
/* checks if there's a previous instance of threshold */
tmpm = SigMatchGetLastSM(s->match_tail, DETECT_THRESHOLD);
tmpm = SigMatchGetLastSM(s->sm_lists_tail[DETECT_SM_LIST_MATCH], DETECT_THRESHOLD);
if (tmpm != NULL) {
SCLogError(SC_ERR_INVALID_SIGNATURE, "\"detection_filter\" and \"threshold\" are not allowed in the same rule");
SCReturnInt(-1);
}
/* checks there's no previous instance of detection_filter */
tmpm = SigMatchGetLastSM(s->match_tail, DETECT_DETECTION_FILTER);
tmpm = SigMatchGetLastSM(s->sm_lists_tail[DETECT_SM_LIST_MATCH], DETECT_DETECTION_FILTER);
if (tmpm != NULL) {
SCLogError(SC_ERR_INVALID_SIGNATURE, "At most one \"detection_filter\" is allowed per rule");
SCReturnInt(-1);

@ -110,7 +110,7 @@ static void SCSigRegisterSignatureOrderingFunc(DetectEngineCtx *de_ctx,
*/
static inline int SCSigGetFlowbitsType(Signature *sig)
{
SigMatch *sm = sig->match;
SigMatch *sm = sig->sm_lists[DETECT_SM_LIST_MATCH];
DetectFlowbitsData *fb = NULL;
int flowbits = DETECT_FLOWBITS_CMD_MAX;
@ -145,7 +145,7 @@ static inline int SCSigGetFlowbitsType(Signature *sig)
*/
static inline int SCSigGetFlowvarType(Signature *sig)
{
SigMatch *sm = sig->match;
SigMatch *sm = sig->sm_lists[DETECT_SM_LIST_MATCH];
DetectPcreData *pd = NULL;
int type = DETECT_FLOWVAR_NOT_USED;
@ -181,7 +181,7 @@ static inline int SCSigGetFlowvarType(Signature *sig)
*/
static inline int SCSigGetPktvarType(Signature *sig)
{
SigMatch *sm = sig->match;
SigMatch *sm = sig->sm_lists[DETECT_SM_LIST_MATCH];
DetectPcreData *pd = NULL;
int type = DETECT_PKTVAR_NOT_USED;

@ -62,7 +62,7 @@
*/
DetectThresholdData *SigGetThresholdType(Signature *sig, Packet *p)
{
SigMatch *sm = sig->match_tail;
SigMatch *sm = sig->sm_lists_tail[DETECT_SM_LIST_MATCH];
DetectThresholdData *tsh = NULL;
if (p == NULL)

@ -338,7 +338,7 @@ static int DetectHttpClientBodyTest01(void)
goto end;
}
sm = de_ctx->sig_list->match;
sm = de_ctx->sig_list->sm_lists[DETECT_SM_LIST_MATCH];
if (sm != NULL) {
result &= (sm->type == DETECT_AL_HTTP_CLIENT_BODY);
result &= (sm->next == NULL);

@ -324,7 +324,7 @@ static int DetectHttpHeaderTest01(void)
goto end;
}
sm = de_ctx->sig_list->match;
sm = de_ctx->sig_list->sm_lists[DETECT_SM_LIST_MATCH];
if (sm != NULL) {
result &= (sm->type == DETECT_AL_HTTP_HEADER);
result &= (sm->next == NULL);

@ -264,20 +264,20 @@ void SigMatchAppendTag(Signature *s, SigMatch *new) {
* \param new sigmatch to append
*/
void SigMatchAppendPacket(Signature *s, SigMatch *new) {
if (s->match == NULL) {
s->match = new;
s->match_tail = new;
if (s->sm_lists[DETECT_SM_LIST_MATCH] == NULL) {
s->sm_lists[DETECT_SM_LIST_MATCH] = new;
s->sm_lists_tail[DETECT_SM_LIST_MATCH] = new;
new->next = NULL;
new->prev = NULL;
} else {
SigMatch *cur = s->match;
SigMatch *cur = s->sm_lists[DETECT_SM_LIST_MATCH];
for ( ; cur->next != NULL; cur = cur->next);
cur->next = new;
new->next = NULL;
new->prev = cur;
s->match_tail = new;
s->sm_lists_tail[DETECT_SM_LIST_MATCH] = new;
}
new->idx = s->sm_cnt;
@ -418,19 +418,19 @@ void SigMatchReplaceContentToUricontent(Signature *s, SigMatch *old, SigMatch *n
* \param new pointer to the new sigmatch, which will replace m
*/
void SigMatchReplace(Signature *s, SigMatch *m, SigMatch *new) {
if (s->match == NULL) {
s->match = new;
if (s->sm_lists[DETECT_SM_LIST_MATCH] == NULL) {
s->sm_lists[DETECT_SM_LIST_MATCH] = new;
return;
}
if (m == NULL) {
s->match = new;
s->sm_lists[DETECT_SM_LIST_MATCH] = new;
} else if (m->prev == NULL) {
if (m->next != NULL) {
m->next->prev = new;
new->next = m->next;
}
s->match = new;
s->sm_lists[DETECT_SM_LIST_MATCH] = new;
} else {
m->prev->next = new;
new->prev = m->prev;
@ -1044,7 +1044,7 @@ void SigFree(Signature *s) {
if (s->CidrSrc != NULL)
IPOnlyCIDRListFree(s->CidrSrc);*/
SigMatch *sm = s->match, *nsm;
SigMatch *sm = s->sm_lists[DETECT_SM_LIST_MATCH], *nsm;
while (sm != NULL) {
nsm = sm->next;
SigMatchFree(sm);
@ -1229,7 +1229,7 @@ static int SigValidate(Signature *s) {
/* check for uricontent + from_server/to_client */
if (s->flags & SIG_FLAG_MPM_URI) {
SigMatch *sm;
for (sm = s->match; sm != NULL; sm = sm->next) {
for (sm = s->sm_lists[DETECT_SM_LIST_MATCH]; sm != NULL; sm = sm->next) {
if (sm->type == DETECT_FLOW) {
DetectFlowData *fd = (DetectFlowData *)sm->ctx;
if (fd == NULL)
@ -1342,8 +1342,8 @@ Signature *SigInit(DetectEngineCtx *de_ctx, char *sigstr) {
* app layer flag wasn't already set in which case we
* only consider the app layer */
if (!(sig->flags & SIG_FLAG_APPLAYER)) {
if (sig->match != NULL) {
SigMatch *sm = sig->match;
if (sig->sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
SigMatch *sm = sig->sm_lists[DETECT_SM_LIST_MATCH];
for ( ; sm != NULL; sm = sm->next) {
if (sigmatch_table[sm->type].AppLayerMatch != NULL)
sig->flags |= SIG_FLAG_APPLAYER;
@ -1534,8 +1534,8 @@ Signature *SigInitReal(DetectEngineCtx *de_ctx, char *sigstr) {
* app layer flag wasn't already set in which case we
* only consider the app layer */
if (!(sig->flags & SIG_FLAG_APPLAYER)) {
if (sig->match != NULL) {
SigMatch *sm = sig->match;
if (sig->sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
SigMatch *sm = sig->sm_lists[DETECT_SM_LIST_MATCH];
for ( ; sm != NULL; sm = sm->next) {
if (sigmatch_table[sm->type].AppLayerMatch != NULL)
sig->flags |= SIG_FLAG_APPLAYER;

@ -225,7 +225,7 @@ static int DetectThresholdSetup (DetectEngineCtx *de_ctx, Signature *s, char *ra
SigMatch *tmpm = NULL;
/* checks if there is a previous instance of detection_filter */
tmpm = SigMatchGetLastSM(s->match_tail, DETECT_DETECTION_FILTER);
tmpm = SigMatchGetLastSM(s->sm_lists[DETECT_SM_LIST_MATCH], DETECT_DETECTION_FILTER);
if (tmpm != NULL) {
SCLogError(SC_ERR_INVALID_SIGNATURE, "\"detection_filter\" and \"threshold\" are not allowed in the same rule");
SCReturnInt(-1);

@ -1075,7 +1075,7 @@ static int DetectUriSigTest04(void) {
if (s == NULL ||
s->umatch == NULL ||
s->pmatch != NULL ||
s->match != NULL)
s->sm_lists[DETECT_SM_LIST_MATCH] != NULL)
{
printf("sig 1 failed to parse: ");
goto end;
@ -1087,7 +1087,7 @@ static int DetectUriSigTest04(void) {
if (s == NULL ||
s->umatch == NULL ||
s->pmatch == NULL ||
s->match != NULL)
s->sm_lists[DETECT_SM_LIST_MATCH] != NULL)
{
printf("sig 2 failed to parse: ");
goto end;
@ -1102,7 +1102,7 @@ static int DetectUriSigTest04(void) {
s->pmatch == NULL ||
((DetectContentData *)s->pmatch->ctx)->depth != 15 ||
((DetectContentData *)s->pmatch->ctx)->offset != 5 ||
s->match != NULL)
s->sm_lists[DETECT_SM_LIST_MATCH] != NULL)
{
printf("sig 3 failed to parse: ");
goto end;
@ -1117,7 +1117,7 @@ static int DetectUriSigTest04(void) {
s->pmatch == NULL ||
((DetectUricontentData *)s->umatch->ctx)->depth != 15 ||
((DetectUricontentData *)s->umatch->ctx)->offset != 5 ||
s->match != NULL)
s->sm_lists[DETECT_SM_LIST_MATCH] != NULL)
{
printf("sig 4 failed to parse: ");
goto end;
@ -1153,7 +1153,7 @@ static int DetectUriSigTest04(void) {
((DetectContentData*) s->pmatch->ctx)->depth != 15 ||
((DetectContentData*) s->pmatch->ctx)->offset != 5 ||
((DetectContentData*) s->pmatch_tail->ctx)->within != 30 ||
s->match != NULL)
s->sm_lists[DETECT_SM_LIST_MATCH] != NULL)
{
printf("sig 7 failed to parse: ");
DetectContentPrint((DetectContentData*) s->pmatch_tail->ctx);
@ -1172,7 +1172,7 @@ static int DetectUriSigTest04(void) {
((DetectContentData*) s->pmatch->ctx)->depth != 15 ||
((DetectContentData*) s->pmatch->ctx)->offset != 5 ||
((DetectUricontentData*) s->umatch_tail->ctx)->within != 30 ||
s->match != NULL)
s->sm_lists[DETECT_SM_LIST_MATCH] != NULL)
{
printf("sig 8 failed to parse: ");
DetectUricontentPrint((DetectUricontentData*) s->umatch_tail->ctx);
@ -1192,7 +1192,7 @@ static int DetectUriSigTest04(void) {
((DetectContentData*) s->pmatch->ctx)->depth != 15 ||
((DetectContentData*) s->pmatch->ctx)->offset != 5 ||
((DetectContentData*) s->pmatch_tail->ctx)->distance != 30 ||
s->match != NULL)
s->sm_lists[DETECT_SM_LIST_MATCH] != NULL)
{
printf("sig 9 failed to parse: ");
DetectContentPrint((DetectContentData*) s->pmatch_tail->ctx);
@ -1212,7 +1212,7 @@ static int DetectUriSigTest04(void) {
((DetectContentData*) s->pmatch->ctx)->depth != 15 ||
((DetectContentData*) s->pmatch->ctx)->offset != 5 ||
((DetectUricontentData*) s->umatch_tail->ctx)->distance != 30 ||
s->match != NULL)
s->sm_lists[DETECT_SM_LIST_MATCH] != NULL)
{
printf("sig 10 failed to parse: ");
DetectUricontentPrint((DetectUricontentData*) s->umatch_tail->ctx);
@ -1242,7 +1242,7 @@ static int DetectUriSigTest04(void) {
((DetectUricontentData*) s->umatch_tail->ctx)->within != 60 ||
((DetectContentData*) s->pmatch_tail->ctx)->distance != 45 ||
((DetectContentData*) s->pmatch_tail->ctx)->within != 70 ||
s->match != NULL) {
s->sm_lists[DETECT_SM_LIST_MATCH] != NULL) {
printf("sig 10 failed to parse, content not setup properly: ");
DetectContentPrint((DetectContentData*) s->pmatch->ctx);
DetectUricontentPrint((DetectUricontentData*) s->umatch_tail->ctx);

@ -1175,7 +1175,7 @@ int SigMatchSignatures(ThreadVars *th_v, DetectEngineCtx *de_ctx, DetectEngineTh
/* if we get here but have no sigmatches to match against,
* we consider the sig matched. */
if (s->match == NULL) {
if (s->sm_lists[DETECT_SM_LIST_MATCH] == NULL) {
SCLogDebug("signature matched without sigmatches");
fmatch = 1;
@ -1188,7 +1188,7 @@ int SigMatchSignatures(ThreadVars *th_v, DetectEngineCtx *de_ctx, DetectEngineTh
uint8_t recursion_cnt = 0;
do {
sm = s->match;
sm = s->sm_lists[DETECT_SM_LIST_MATCH];
while (sm) {
match = sigmatch_table[sm->type].Match(th_v, det_ctx, p, s, sm);
if (match > 0) {
@ -1220,7 +1220,7 @@ int SigMatchSignatures(ThreadVars *th_v, DetectEngineCtx *de_ctx, DetectEngineTh
} while (rmatch);
} else {
sm = s->match;
sm = s->sm_lists[DETECT_SM_LIST_MATCH];
SCLogDebug("running match functions, sm %p", sm);
while (sm) {
@ -1454,7 +1454,7 @@ int SignatureIsIPOnly(DetectEngineCtx *de_ctx, Signature *s) {
if (s->amatch != NULL)
return 0;
SigMatch *sm = s->match;
SigMatch *sm = s->sm_lists[DETECT_SM_LIST_MATCH];
if (sm == NULL)
goto iponly;
@ -1522,7 +1522,7 @@ static int SignatureIsDEOnly(DetectEngineCtx *de_ctx, Signature *s) {
if (s->amatch != NULL)
return 0;
SigMatch *sm = s->match;
SigMatch *sm = s->sm_lists[DETECT_SM_LIST_MATCH];
/* check for conflicting keywords */
for ( ;sm != NULL; sm = sm->next) {
if ( !(sigmatch_table[sm->type].flags & SIGMATCH_DEONLY_COMPAT))
@ -1628,7 +1628,7 @@ static int SignatureCreateMask(Signature *s) {
}
}
for (sm = s->match ; sm != NULL; sm = sm->next) {
for (sm = s->sm_lists[DETECT_SM_LIST_MATCH] ; sm != NULL; sm = sm->next) {
switch(sm->type) {
case DETECT_FLOWBITS:
{
@ -1758,7 +1758,7 @@ int SigAddressPrepareStage1(DetectEngineCtx *de_ctx) {
char copresent = 0;
SigMatch *sm;
DetectContentData *co;
for (sm = tmp_s->match; sm != NULL; sm = sm->next) {
for (sm = tmp_s->sm_lists[DETECT_SM_LIST_MATCH]; sm != NULL; sm = sm->next) {
if (sm->type != DETECT_CONTENT)
continue;
@ -1891,7 +1891,7 @@ static int DetectEngineLookupFlowAddSig(DetectEngineCtx *de_ctx, Signature *s, i
uint8_t flags = 0;
if (s->flags & SIG_FLAG_FLOW) {
SigMatch *sm = s->match;
SigMatch *sm = s->sm_lists[DETECT_SM_LIST_MATCH];
for ( ; sm != NULL; sm = sm->next) {
if (sm->type != DETECT_FLOW)
continue;

@ -76,6 +76,19 @@ struct SCSigSignatureWrapper_;
* DETECT ADDRESS
*/
/* holds the values for different possible lists in struct Signature.
* These codes are access points to particular lists in the array
* Signature->sm_lists[DETECT_SM_LIST_MAX] */
enum {
DETECT_SM_LIST_MATCH = 0,
DETECT_SM_LIST_PMATCH,
DETECT_SM_LIST_UMATCH,
DETECT_SM_LIST_AMATCH,
DETECT_SM_LIST_DMATCH,
DETECT_SM_LIST_TMATCH,
DETECT_SM_LIST_MAX,
};
/* a is ... than b */
enum {
ADDRESS_ER = -1, /**< error e.g. compare ipv4 and ipv6 */
@ -341,12 +354,15 @@ typedef struct Signature_ {
/** netblocks and hosts specified at the sid, in CIDR format */
IPOnlyCIDRItem *CidrSrc, *CidrDst;
/* holds all sm lists */
struct SigMatch_ *sm_lists[DETECT_SM_LIST_MAX];
/** ptr to the SigMatch lists */
struct SigMatch_ *pmatch; /* payload matches */
struct SigMatch_ *umatch; /* uricontent payload matches */
struct SigMatch_ *amatch; /* general app layer matches */
struct SigMatch_ *dmatch; /* dce app layer matches */
struct SigMatch_ *match; /* non-payload matches */
//struct SigMatch_ *match; /* non-payload matches */
struct SigMatch_ *tmatch; /* list of tags matches */
struct SigMatch_ *dsize_sm;
@ -392,7 +408,10 @@ typedef struct Signature_ {
uint16_t profiling_id;
#endif
struct SigMatch_ *match_tail; /* non-payload matches, tail of the list */
/* holds all sm lists' tails */
struct SigMatch_ *sm_lists_tail[DETECT_SM_LIST_MAX];
//struct SigMatch_ *match_tail; /* non-payload matches, tail of the list */
struct SigMatch_ *pmatch_tail; /* payload matches, tail of the list */
struct SigMatch_ *umatch_tail; /* uricontent payload matches, tail of the list */
struct SigMatch_ *amatch_tail; /* general app layer matches, tail of the list */

@ -355,12 +355,12 @@ int SCThresholdConfAddThresholdtype(char *rawstr, DetectEngineCtx *de_ctx)
ns = s->next;
m = SigMatchGetLastSM(s->match, DETECT_THRESHOLD);
m = SigMatchGetLastSM(s->sm_lists[DETECT_SM_LIST_MATCH], DETECT_THRESHOLD);
if(m != NULL)
goto end;
m = SigMatchGetLastSM(s->match, DETECT_DETECTION_FILTER);
m = SigMatchGetLastSM(s->sm_lists[DETECT_SM_LIST_MATCH], DETECT_DETECTION_FILTER);
if(m != NULL)
goto end;
@ -412,12 +412,12 @@ int SCThresholdConfAddThresholdtype(char *rawstr, DetectEngineCtx *de_ctx)
if(s->gid == gid) {
m = SigMatchGetLastSM(s->match, DETECT_THRESHOLD);
m = SigMatchGetLastSM(s->sm_lists[DETECT_SM_LIST_MATCH], DETECT_THRESHOLD);
if(m != NULL)
goto end;
m = SigMatchGetLastSM(s->match, DETECT_DETECTION_FILTER);
m = SigMatchGetLastSM(s->sm_lists[DETECT_SM_LIST_MATCH], DETECT_DETECTION_FILTER);
if(m != NULL)
goto end;
@ -466,12 +466,12 @@ int SCThresholdConfAddThresholdtype(char *rawstr, DetectEngineCtx *de_ctx)
if(sig != NULL) {
m = SigMatchGetLastSM(sig->match, DETECT_THRESHOLD);
m = SigMatchGetLastSM(sig->sm_lists[DETECT_SM_LIST_MATCH], DETECT_THRESHOLD);
if(m != NULL)
goto end;
m = SigMatchGetLastSM(sig->match, DETECT_DETECTION_FILTER);
m = SigMatchGetLastSM(sig->sm_lists[DETECT_SM_LIST_MATCH], DETECT_DETECTION_FILTER);
if(m != NULL)
goto end;
@ -908,7 +908,7 @@ int SCThresholdConfTest01(void)
fd = SCThresholdConfGenerateValidDummyFD01();
SCThresholdConfInitContext(de_ctx,fd);
m = SigMatchGetLastSM(sig->match, DETECT_THRESHOLD);
m = SigMatchGetLastSM(sig->sm_lists[DETECT_SM_LIST_MATCH], DETECT_THRESHOLD);
if(m != NULL) {
de = (DetectThresholdData *)m->ctx;
@ -952,7 +952,7 @@ int SCThresholdConfTest02(void)
fd = SCThresholdConfGenerateValidDummyFD01();
SCThresholdConfInitContext(de_ctx,fd);
m = SigMatchGetLastSM(sig->match, DETECT_THRESHOLD);
m = SigMatchGetLastSM(sig->sm_lists[DETECT_SM_LIST_MATCH], DETECT_THRESHOLD);
if(m != NULL) {
de = (DetectThresholdData *)m->ctx;
@ -995,7 +995,7 @@ int SCThresholdConfTest03(void)
fd = SCThresholdConfGenerateValidDummyFD01();
SCThresholdConfInitContext(de_ctx,fd);
m = SigMatchGetLastSM(sig->match, DETECT_THRESHOLD);
m = SigMatchGetLastSM(sig->sm_lists[DETECT_SM_LIST_MATCH], DETECT_THRESHOLD);
if(m != NULL) {
de = (DetectThresholdData *)m->ctx;
@ -1038,7 +1038,7 @@ int SCThresholdConfTest04(void)
fd = SCThresholdConfGenerateInValidDummyFD02();
SCThresholdConfInitContext(de_ctx,fd);
m = SigMatchGetLastSM(sig->match, DETECT_THRESHOLD);
m = SigMatchGetLastSM(sig->sm_lists[DETECT_SM_LIST_MATCH], DETECT_THRESHOLD);
if(m != NULL) {
de = (DetectThresholdData *)m->ctx;
@ -1099,7 +1099,7 @@ int SCThresholdConfTest05(void)
if(s->id == 1 || s->id == 10 || s->id == 100) {
m = SigMatchGetLastSM(s->match, DETECT_THRESHOLD);
m = SigMatchGetLastSM(s->sm_lists[DETECT_SM_LIST_MATCH], DETECT_THRESHOLD);
if(m == NULL) {
goto end;
@ -1152,7 +1152,7 @@ int SCThresholdConfTest06(void)
fd = SCThresholdConfGenerateValidDummyFD04();
SCThresholdConfInitContext(de_ctx,fd);
m = SigMatchGetLastSM(sig->match, DETECT_THRESHOLD);
m = SigMatchGetLastSM(sig->sm_lists[DETECT_SM_LIST_MATCH], DETECT_THRESHOLD);
if(m != NULL) {
de = (DetectThresholdData *)m->ctx;
@ -1196,7 +1196,7 @@ int SCThresholdConfTest07(void)
fd = SCThresholdConfGenerateValidDummyFD05();
SCThresholdConfInitContext(de_ctx,fd);
m = SigMatchGetLastSM(sig->match, DETECT_DETECTION_FILTER);
m = SigMatchGetLastSM(sig->sm_lists[DETECT_SM_LIST_MATCH], DETECT_DETECTION_FILTER);
if(m != NULL) {
de = (DetectThresholdData *)m->ctx;
@ -1241,7 +1241,7 @@ int SCThresholdConfTest08(void)
fd = SCThresholdConfGenerateValidDummyFD06();
SCThresholdConfInitContext(de_ctx,fd);
m = SigMatchGetLastSM(sig->match, DETECT_DETECTION_FILTER);
m = SigMatchGetLastSM(sig->sm_lists[DETECT_SM_LIST_MATCH], DETECT_DETECTION_FILTER);
if(m != NULL) {
de = (DetectThresholdData *)m->ctx;

Loading…
Cancel
Save