From 82fd581b64d84eaf12474dddd94bf38a9fa7169e Mon Sep 17 00:00:00 2001 From: Anoop Saldanha Date: Thu, 11 Nov 2010 18:46:07 +0530 Subject: [PATCH] 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] --- src/detect-content.c | 2 +- src/detect-csum.c | 294 +++++++++++++++++----------------- src/detect-detection-filter.c | 4 +- src/detect-engine-sigorder.c | 6 +- src/detect-engine-threshold.c | 2 +- src/detect-http-client-body.c | 2 +- src/detect-http-header.c | 2 +- src/detect-parse.c | 30 ++-- src/detect-threshold.c | 2 +- src/detect-uricontent.c | 18 +-- src/detect.c | 16 +- src/detect.h | 23 ++- src/util-threshold-config.c | 28 ++-- 13 files changed, 224 insertions(+), 205 deletions(-) diff --git a/src/detect-content.c b/src/detect-content.c index a31200bda5..15a3b37abe 100644 --- a/src/detect-content.c +++ b/src/detect-content.c @@ -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); diff --git a/src/detect-csum.c b/src/detect-csum.c index 32784df97d..8ad4bb60b8 100644 --- a/src/detect-csum.c +++ b/src/detect-csum.c @@ -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); } diff --git a/src/detect-detection-filter.c b/src/detect-detection-filter.c index 5378297fb3..0935176fba 100644 --- a/src/detect-detection-filter.c +++ b/src/detect-detection-filter.c @@ -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); diff --git a/src/detect-engine-sigorder.c b/src/detect-engine-sigorder.c index 68c72ddcaf..0f8d7f49ff 100644 --- a/src/detect-engine-sigorder.c +++ b/src/detect-engine-sigorder.c @@ -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; diff --git a/src/detect-engine-threshold.c b/src/detect-engine-threshold.c index eafd2be3fd..b7a63a7f4c 100644 --- a/src/detect-engine-threshold.c +++ b/src/detect-engine-threshold.c @@ -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) diff --git a/src/detect-http-client-body.c b/src/detect-http-client-body.c index 0fa2d9f260..c969191930 100644 --- a/src/detect-http-client-body.c +++ b/src/detect-http-client-body.c @@ -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); diff --git a/src/detect-http-header.c b/src/detect-http-header.c index 215f97e4d4..25eb9fc7fd 100644 --- a/src/detect-http-header.c +++ b/src/detect-http-header.c @@ -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); diff --git a/src/detect-parse.c b/src/detect-parse.c index c3402063ad..7a7a1f33ac 100644 --- a/src/detect-parse.c +++ b/src/detect-parse.c @@ -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; diff --git a/src/detect-threshold.c b/src/detect-threshold.c index 65d6aec323..f75ead5f82 100644 --- a/src/detect-threshold.c +++ b/src/detect-threshold.c @@ -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); diff --git a/src/detect-uricontent.c b/src/detect-uricontent.c index 501831a6f3..5493ab986c 100644 --- a/src/detect-uricontent.c +++ b/src/detect-uricontent.c @@ -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); diff --git a/src/detect.c b/src/detect.c index 215b3141fc..ba1f60b638 100644 --- a/src/detect.c +++ b/src/detect.c @@ -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; diff --git a/src/detect.h b/src/detect.h index 6eb39b5ea4..f4e26ffefd 100644 --- a/src/detect.h +++ b/src/detect.h @@ -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 */ diff --git a/src/util-threshold-config.c b/src/util-threshold-config.c index 10de306ebf..eed2f16741 100644 --- a/src/util-threshold-config.c +++ b/src/util-threshold-config.c @@ -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;