From ab1f8afbc3d26177a899cab918539200c57d1ad9 Mon Sep 17 00:00:00 2001 From: Anoop Saldanha Date: Fri, 10 May 2013 21:50:16 +0530 Subject: [PATCH] Removed Signature->order_id and replaced it with Signature->num. --- src/detect-engine-alert.c | 6 +- src/detect-engine-sigorder.c | 13 ++- src/detect.c | 2 - src/detect.h | 2 - src/util-action.c | 176 ----------------------------------- 5 files changed, 13 insertions(+), 186 deletions(-) diff --git a/src/detect-engine-alert.c b/src/detect-engine-alert.c index 6114ee45a6..e102daaa9c 100644 --- a/src/detect-engine-alert.c +++ b/src/detect-engine-alert.c @@ -164,24 +164,22 @@ int PacketAlertAppend(DetectEngineThreadCtx *det_ctx, Signature *s, Packet *p, u /* It should be usually the last, so check it before iterating */ if (p->alerts.cnt == 0 || (p->alerts.cnt > 0 && - p->alerts.alerts[p->alerts.cnt - 1].order_id < s->order_id)) { + p->alerts.alerts[p->alerts.cnt - 1].num < s->num)) { /* We just add it */ p->alerts.alerts[p->alerts.cnt].num = s->num; - p->alerts.alerts[p->alerts.cnt].order_id = s->order_id; p->alerts.alerts[p->alerts.cnt].action = s->action; p->alerts.alerts[p->alerts.cnt].flags = flags; p->alerts.alerts[p->alerts.cnt].s = s; } else { /* We need to make room for this s->num (a bit ugly with memcpy but we are planning changes here)*/ - for (i = p->alerts.cnt - 1; i >= 0 && p->alerts.alerts[i].order_id > s->order_id; i--) { + for (i = p->alerts.cnt - 1; i >= 0 && p->alerts.alerts[i].num > s->num; i--) { memcpy(&p->alerts.alerts[i + 1], &p->alerts.alerts[i], sizeof(PacketAlert)); } i++; /* The right place to store the alert */ p->alerts.alerts[i].num = s->num; - p->alerts.alerts[i].order_id = s->order_id; p->alerts.alerts[i].action = s->action; p->alerts.alerts[i].flags = flags; p->alerts.alerts[i].s = s; diff --git a/src/detect-engine-sigorder.c b/src/detect-engine-sigorder.c index a6998ebb61..5f819858cd 100644 --- a/src/detect-engine-sigorder.c +++ b/src/detect-engine-sigorder.c @@ -133,7 +133,9 @@ static inline int SCSigGetFlowbitsType(Signature *sig) fb->cmd == DETECT_FLOWBITS_CMD_ISSET) { read++; } else { +#ifdef DEBUG BUG_ON(1); +#endif } } @@ -149,7 +151,9 @@ static inline int SCSigGetFlowbitsType(Signature *sig) fb->cmd == DETECT_FLOWBITS_CMD_TOGGLE) { write++; } else { +#ifdef DEBUG BUG_ON(1); +#endif } } @@ -189,7 +193,9 @@ static inline int SCSigGetFlowintType(Signature *sig) fi->modifier == FLOWINT_MODIFIER_ISSET) { read++; } else { +#ifdef DEBUG BUG_ON(1); +#endif } } @@ -205,7 +211,9 @@ static inline int SCSigGetFlowintType(Signature *sig) fi->modifier == FLOWINT_MODIFIER_SUB) { write++; } else { +#ifdef DEBUG BUG_ON(1); +#endif } } @@ -1990,6 +1998,7 @@ static int SCSigOrderingTest12(void) FLOW_INITIALIZE(&f); f.flags |= FLOW_IPV4; f.alproto = ALPROTO_UNKNOWN; + f.proto = IPPROTO_TCP; DetectEngineCtx *de_ctx = DetectEngineCtxInit(); if (de_ctx == NULL) @@ -2008,8 +2017,8 @@ static int SCSigOrderingTest12(void) goto end; if (sig->next->next != NULL) goto end; - //if (de_ctx->signum != 2) - // goto end; + if (de_ctx->signum != 2) + goto end; FlowInitConfig(FLOW_QUIET); p = UTHBuildPacket(buf, sizeof(buf), IPPROTO_TCP); diff --git a/src/detect.c b/src/detect.c index a44d6dfa6f..ade75151cd 100644 --- a/src/detect.c +++ b/src/detect.c @@ -4405,11 +4405,9 @@ int SigGroupBuild(DetectEngineCtx *de_ctx) * reset the old signums and assign new signums. We would * have experienced Sig reordering by now, hence the new * signums. */ - SigIntId sig_id = 0; de_ctx->signum = 0; while (s != NULL) { s->num = de_ctx->signum++; - s->order_id = sig_id++; s = s->next; } diff --git a/src/detect.h b/src/detect.h index f27361d42e..a3e4906960 100644 --- a/src/detect.h +++ b/src/detect.h @@ -387,8 +387,6 @@ typedef struct Signature_ { uint32_t hdr_copy3; }; - SigIntId order_id; - /** inline -- action */ uint8_t action; uint8_t file_flags; diff --git a/src/util-action.c b/src/util-action.c index 0d0d5c09f9..0f841c3b9b 100644 --- a/src/util-action.c +++ b/src/util-action.c @@ -468,17 +468,6 @@ int UtilActionTest08(void) SCSigRegisterSignatureOrderingFuncs(de_ctx); SCSigOrderSignatures(de_ctx); - Signature *s = de_ctx->sig_list; - uint16_t sig_id = 0; - /* Assing the internal id after sorting, so the IP Only engine - * process them in order too */ - while (s != NULL) { - s->order_id = sig_id++; - s = s->next; - } - - de_ctx->signum = sig_id; - res = UTHMatchPacketsWithResults(de_ctx, p, 3, sid, (uint32_t *) results, 3); cleanup: @@ -551,17 +540,6 @@ int UtilActionTest09(void) SCSigRegisterSignatureOrderingFuncs(de_ctx); SCSigOrderSignatures(de_ctx); - Signature *s = de_ctx->sig_list; - uint16_t sig_id = 0; - /* Assing the internal id after sorting, so the IP Only engine - * process them in order too */ - while (s != NULL) { - s->order_id = sig_id++; - s = s->next; - } - - de_ctx->signum = sig_id; - res = UTHMatchPacketsWithResults(de_ctx, p, 3, sid, (uint32_t *) results, 3); cleanup: @@ -633,17 +611,6 @@ int UtilActionTest10(void) SCSigRegisterSignatureOrderingFuncs(de_ctx); SCSigOrderSignatures(de_ctx); - Signature *s = de_ctx->sig_list; - uint16_t sig_id = 0; - /* Assing the internal id after sorting, so the IP Only engine - * process them in order too */ - while (s != NULL) { - s->order_id = sig_id++; - s = s->next; - } - - de_ctx->signum = sig_id; - res = UTHMatchPacketsWithResults(de_ctx, p, 3, sid, (uint32_t *) results, 3); cleanup: @@ -718,17 +685,6 @@ int UtilActionTest11(void) SCSigRegisterSignatureOrderingFuncs(de_ctx); SCSigOrderSignatures(de_ctx); - Signature *s = de_ctx->sig_list; - uint16_t sig_id = 0; - /* Assing the internal id after sorting, so the IP Only engine - * process them in order too */ - while (s != NULL) { - s->order_id = sig_id++; - s = s->next; - } - - de_ctx->signum = sig_id; - res = UTHMatchPacketsWithResults(de_ctx, p, 3, sid, (uint32_t *) results, 3); cleanup: @@ -796,17 +752,6 @@ int UtilActionTest12(void) SCSigRegisterSignatureOrderingFuncs(de_ctx); SCSigOrderSignatures(de_ctx); - Signature *s = de_ctx->sig_list; - uint16_t sig_id = 0; - /* Assing the internal id after sorting, so the IP Only engine - * process them in order too */ - while (s != NULL) { - s->order_id = sig_id++; - s = s->next; - } - - de_ctx->signum = sig_id; - res = UTHMatchPacketsWithResults(de_ctx, p, 3, sid, (uint32_t *) results, 3); cleanup: @@ -877,17 +822,6 @@ int UtilActionTest13(void) SCSigRegisterSignatureOrderingFuncs(de_ctx); SCSigOrderSignatures(de_ctx); - Signature *s = de_ctx->sig_list; - uint16_t sig_id = 0; - /* Assing the internal id after sorting, so the IP Only engine - * process them in order too */ - while (s != NULL) { - s->order_id = sig_id++; - s = s->next; - } - - de_ctx->signum = sig_id; - res = UTHMatchPacketsWithResults(de_ctx, p, 3, sid, (uint32_t *) results, 3); cleanup: @@ -964,17 +898,6 @@ int UtilActionTest14(void) SCSigRegisterSignatureOrderingFuncs(de_ctx); SCSigOrderSignatures(de_ctx); - Signature *s = de_ctx->sig_list; - uint16_t sig_id = 0; - /* Assing the internal id after sorting, so the IP Only engine - * process them in order too */ - while (s != NULL) { - s->order_id = sig_id++; - s = s->next; - } - - de_ctx->signum = sig_id; - res = UTHMatchPacketsWithResults(de_ctx, p, 3, sid, (uint32_t *) results, 3); cleanup: @@ -1044,17 +967,6 @@ int UtilActionTest15(void) SCSigRegisterSignatureOrderingFuncs(de_ctx); SCSigOrderSignatures(de_ctx); - Signature *s = de_ctx->sig_list; - uint16_t sig_id = 0; - /* Assing the internal id after sorting, so the IP Only engine - * process them in order too */ - while (s != NULL) { - s->order_id = sig_id++; - s = s->next; - } - - de_ctx->signum = sig_id; - res = UTHMatchPacketsWithResults(de_ctx, p, 3, sid, (uint32_t *) results, 3); cleanup: @@ -1119,17 +1031,6 @@ int UtilActionTest16(void) SCSigRegisterSignatureOrderingFuncs(de_ctx); SCSigOrderSignatures(de_ctx); - Signature *s = de_ctx->sig_list; - uint16_t sig_id = 0; - /* Assing the internal id after sorting, so the IP Only engine - * process them in order too */ - while (s != NULL) { - s->order_id = sig_id++; - s = s->next; - } - - de_ctx->signum = sig_id; - res = UTHMatchPacketsWithResults(de_ctx, p, 3, sid, (uint32_t *) results, 3); cleanup: @@ -1194,17 +1095,6 @@ int UtilActionTest17(void) SCSigRegisterSignatureOrderingFuncs(de_ctx); SCSigOrderSignatures(de_ctx); - Signature *s = de_ctx->sig_list; - uint16_t sig_id = 0; - /* Assing the internal id after sorting, so the IP Only engine - * process them in order too */ - while (s != NULL) { - s->order_id = sig_id++; - s = s->next; - } - - de_ctx->signum = sig_id; - res = UTHMatchPacketsWithResults(de_ctx, p, 3, sid, (uint32_t *) results, 3); cleanup: @@ -1274,17 +1164,6 @@ int UtilActionTest18(void) SCSigRegisterSignatureOrderingFuncs(de_ctx); SCSigOrderSignatures(de_ctx); - Signature *s = de_ctx->sig_list; - uint16_t sig_id = 0; - /* Assing the internal id after sorting, so the IP Only engine - * process them in order too */ - while (s != NULL) { - s->order_id = sig_id++; - s = s->next; - } - - de_ctx->signum = sig_id; - res = UTHMatchPacketsWithResults(de_ctx, p, 3, sid, (uint32_t *) results, 3); cleanup: @@ -1360,17 +1239,6 @@ int UtilActionTest19(void) SCSigRegisterSignatureOrderingFuncs(de_ctx); SCSigOrderSignatures(de_ctx); - Signature *s = de_ctx->sig_list; - uint16_t sig_id = 0; - /* Assing the internal id after sorting, so the IP Only engine - * process them in order too */ - while (s != NULL) { - s->order_id = sig_id++; - s = s->next; - } - - de_ctx->signum = sig_id; - res = UTHMatchPacketsWithResults(de_ctx, p, 3, sid, (uint32_t *) results, 3); cleanup: @@ -1446,17 +1314,6 @@ int UtilActionTest20(void) SCSigRegisterSignatureOrderingFuncs(de_ctx); SCSigOrderSignatures(de_ctx); - Signature *s = de_ctx->sig_list; - uint16_t sig_id = 0; - /* Assing the internal id after sorting, so the IP Only engine - * process them in order too */ - while (s != NULL) { - s->order_id = sig_id++; - s = s->next; - } - - de_ctx->signum = sig_id; - res = UTHMatchPacketsWithResults(de_ctx, p, 3, sid, (uint32_t *) results, 3); cleanup: @@ -1526,17 +1383,6 @@ int UtilActionTest21(void) SCSigRegisterSignatureOrderingFuncs(de_ctx); SCSigOrderSignatures(de_ctx); - Signature *s = de_ctx->sig_list; - uint16_t sig_id = 0; - /* Assing the internal id after sorting, so the IP Only engine - * process them in order too */ - while (s != NULL) { - s->order_id = sig_id++; - s = s->next; - } - - de_ctx->signum = sig_id; - res = UTHMatchPacketsWithResults(de_ctx, p, 3, sid, (uint32_t *) results, 3); cleanup: @@ -1612,17 +1458,6 @@ int UtilActionTest22(void) SCSigRegisterSignatureOrderingFuncs(de_ctx); SCSigOrderSignatures(de_ctx); - Signature *s = de_ctx->sig_list; - uint16_t sig_id = 0; - /* Assing the internal id after sorting, so the IP Only engine - * process them in order too */ - while (s != NULL) { - s->order_id = sig_id++; - s = s->next; - } - - de_ctx->signum = sig_id; - res = UTHMatchPacketsWithResults(de_ctx, p, 3, sid, (uint32_t *) results, 3); cleanup: @@ -1698,17 +1533,6 @@ int UtilActionTest23(void) SCSigRegisterSignatureOrderingFuncs(de_ctx); SCSigOrderSignatures(de_ctx); - Signature *s = de_ctx->sig_list; - uint16_t sig_id = 0; - /* Assing the internal id after sorting, so the IP Only engine - * process them in order too */ - while (s != NULL) { - s->order_id = sig_id++; - s = s->next; - } - - de_ctx->signum = sig_id; - res = UTHMatchPacketsWithResults(de_ctx, p, 3, sid, (uint32_t *) results, 3); cleanup: