From: Modupe Falodun Date: Wed, 2 Feb 2022 19:21:24 +0000 (+0100) Subject: detect-uricontent: convert unittests to FAIL/PASS APIs X-Git-Tag: suricata-7.0.0-beta1~936 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F6924%2Fhead;p=thirdparty%2Fsuricata.git detect-uricontent: convert unittests to FAIL/PASS APIs --- diff --git a/src/detect-uricontent.c b/src/detect-uricontent.c index fc11de865e..425e223249 100644 --- a/src/detect-uricontent.c +++ b/src/detect-uricontent.c @@ -157,50 +157,6 @@ error: #include "detect-isdataat.h" #include "stream-tcp-reassemble.h" -/** - * \brief Helper function to print a DetectContentData - */ -static void DetectUricontentPrint(DetectContentData *cd) -{ - int i = 0; - if (cd == NULL) { - SCLogDebug("Detect UricontentData \"cd\" is NULL"); - return; - } - char *tmpstr = SCMalloc(sizeof(char) * cd->content_len + 1); - if (unlikely(tmpstr == NULL)) - return; - - if (tmpstr != NULL) { - for (i = 0; i < cd->content_len; i++) { - if (isprint(cd->content[i])) - tmpstr[i] = cd->content[i]; - else - tmpstr[i] = '.'; - } - tmpstr[i] = '\0'; - SCLogDebug("Uricontent: \"%s\"", tmpstr); - SCFree(tmpstr); - } else { - SCLogDebug("Uricontent: "); - for (i = 0; i < cd->content_len; i++) - SCLogDebug("%c", cd->content[i]); - } - - SCLogDebug("Uricontent_id: %"PRIu32, cd->id); - SCLogDebug("Uricontent_len: %"PRIu16, cd->content_len); - SCLogDebug("Depth: %"PRIu16, cd->depth); - SCLogDebug("Offset: %"PRIu16, cd->offset); - SCLogDebug("Within: %"PRIi32, cd->within); - SCLogDebug("Distance: %"PRIi32, cd->distance); - SCLogDebug("flags: %u ", cd->flags); - SCLogDebug("negated: %s ", - cd->flags & DETECT_CONTENT_NEGATED ? "true" : "false"); - SCLogDebug("relative match next: %s ", - cd->flags & DETECT_CONTENT_RELATIVE_NEXT ? "true" : "false"); - SCLogDebug("-----------"); -} - /** * \test Checks if a uricontent is registered in a Signature */ @@ -232,200 +188,142 @@ static int DetectUriSigTest01(void) */ static int DetectUriSigTest02(void) { - int result = 0; Signature *s = NULL; DetectEngineCtx *de_ctx = DetectEngineCtxInit(); - if (de_ctx == NULL) { - goto end; - } - - s = SigInit(de_ctx,"alert tcp any any -> any any (msg:" - "\" Test uricontent\"; " - "uricontent:\"foo\"; sid:1;)"); - if (s == NULL || - s->sm_lists[g_http_uri_buffer_id] == NULL || - s->sm_lists[DETECT_SM_LIST_PMATCH] != NULL || - s->sm_lists[DETECT_SM_LIST_MATCH] != NULL) - { - printf("sig 1 failed to parse: "); - goto end; - } + FAIL_IF_NULL(de_ctx); - s = SigInit(de_ctx,"alert tcp any any -> any any (msg:" - "\" Test uricontent and content\"; " - "uricontent:\"foo\"; content:\"bar\";sid:1;)"); - if (s == NULL || - s->sm_lists[g_http_uri_buffer_id] == NULL || - s->sm_lists[DETECT_SM_LIST_PMATCH] == NULL || - s->sm_lists[DETECT_SM_LIST_MATCH] != NULL) - { - printf("sig 2 failed to parse: "); - goto end; - } + s = SigInit(de_ctx, "alert tcp any any -> any any (msg:" + "\" Test uricontent\"; " + "uricontent:\"foo\"; sid:1;)"); + FAIL_IF_NULL(s); + FAIL_IF_NULL(s->sm_lists[g_http_uri_buffer_id]); + FAIL_IF_NOT_NULL(s->sm_lists[DETECT_SM_LIST_PMATCH]); + FAIL_IF_NOT_NULL(s->sm_lists[DETECT_SM_LIST_MATCH]); - s = SigInit(de_ctx,"alert tcp any any -> any any (msg:" - "\" Test uricontent and content\"; " - "uricontent:\"foo\"; content:\"bar\";" - " depth:10; offset: 5; sid:1;)"); - if (s == NULL || - s->sm_lists[g_http_uri_buffer_id] == NULL || - s->sm_lists[DETECT_SM_LIST_PMATCH] == NULL || - ((DetectContentData *)s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->depth != 15 || - ((DetectContentData *)s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->offset != 5 || - s->sm_lists[DETECT_SM_LIST_MATCH] != NULL) - { - printf("sig 3 failed to parse: "); - goto end; - } + s = SigInit(de_ctx, "alert tcp any any -> any any (msg:" + "\" Test uricontent and content\"; " + "uricontent:\"foo\"; content:\"bar\";sid:1;)"); - s = SigInit(de_ctx,"alert tcp any any -> any any (msg:" - "\" Test uricontent and content\"; " - "content:\"foo\"; uricontent:\"bar\";" - " depth:10; offset: 5; sid:1;)"); - if (s == NULL || - s->sm_lists[g_http_uri_buffer_id] == NULL || - s->sm_lists[DETECT_SM_LIST_PMATCH] == NULL || - ((DetectContentData *)s->sm_lists[g_http_uri_buffer_id]->ctx)->depth != 15 || - ((DetectContentData *)s->sm_lists[g_http_uri_buffer_id]->ctx)->offset != 5 || - s->sm_lists[DETECT_SM_LIST_MATCH] != NULL) - { - printf("sig 4 failed to parse: "); - goto end; - } + FAIL_IF_NULL(s); + FAIL_IF_NULL(s->sm_lists[g_http_uri_buffer_id]); + FAIL_IF_NULL(s->sm_lists[DETECT_SM_LIST_PMATCH]); + FAIL_IF_NOT_NULL(s->sm_lists[DETECT_SM_LIST_MATCH]); - s = SigInit(de_ctx,"alert tcp any any -> any any (msg:" - "\" Test uricontent and content\"; " - "uricontent:\"foo\"; content:\"bar\";" - " depth:10; offset: 5; within:3; sid:1;)"); - if (s != NULL) { - printf("sig 5 failed to parse: "); - goto end; - } + s = SigInit(de_ctx, "alert tcp any any -> any any (msg:" + "\" Test uricontent and content\"; " + "uricontent:\"foo\"; content:\"bar\";" + " depth:10; offset: 5; sid:1;)"); - s = SigInit(de_ctx,"alert tcp any any -> any any (msg:" - "\" Test uricontent and content\"; " - "uricontent:\"foo\"; content:\"bar\";" - " depth:10; offset: 5; distance:3; sid:1;)"); - if (s != NULL) { - printf("sig 6 failed to parse: "); - goto end; - } + FAIL_IF_NULL(s); + FAIL_IF_NULL(s->sm_lists[g_http_uri_buffer_id]); + FAIL_IF_NULL(s->sm_lists[DETECT_SM_LIST_PMATCH]); + FAIL_IF_NOT(((DetectContentData *)s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->depth = 15); + FAIL_IF_NOT(((DetectContentData *)s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->offset = 5); + FAIL_IF_NOT_NULL(s->sm_lists[DETECT_SM_LIST_MATCH]); - s = SigInit(de_ctx,"alert tcp any any -> any any (msg:" - "\" Test uricontent and content\"; " - "uricontent:\"foo\"; content:\"bar\";" - " depth:10; offset: 5; content:" - "\"two_contents\"; within:30; sid:1;)"); - if (s == NULL) { - goto end; - } else if (s->sm_lists[g_http_uri_buffer_id] == NULL || - s->sm_lists[DETECT_SM_LIST_PMATCH] == NULL || - ((DetectContentData*) s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->depth != 15 || - ((DetectContentData*) s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->offset != 5 || - ((DetectContentData*) s->sm_lists_tail[DETECT_SM_LIST_PMATCH]->ctx)->within != 30 || - s->sm_lists[DETECT_SM_LIST_MATCH] != NULL) - { - printf("sig 7 failed to parse: "); - DetectContentPrint((DetectContentData*) s->sm_lists_tail[DETECT_SM_LIST_PMATCH]->ctx); - goto end; - } + s = SigInit(de_ctx, "alert tcp any any -> any any (msg:" + "\" Test uricontent and content\"; " + "content:\"foo\"; uricontent:\"bar\";" + " depth:10; offset: 5; sid:1;)"); - s = SigInit(de_ctx,"alert tcp any any -> any any (msg:" - "\" Test uricontent and content\"; " - "uricontent:\"foo\"; content:\"bar\";" - " depth:10; offset: 5; uricontent:" - "\"two_uricontents\"; within:30; sid:1;)"); - if (s == NULL) { - goto end; - } else if (s->sm_lists[g_http_uri_buffer_id] == NULL || - s->sm_lists[DETECT_SM_LIST_PMATCH] == NULL || - ((DetectContentData*) s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->depth != 15 || - ((DetectContentData*) s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->offset != 5 || - ((DetectContentData*) s->sm_lists_tail[g_http_uri_buffer_id]->ctx)->within != 30 || - s->sm_lists[DETECT_SM_LIST_MATCH] != NULL) - { - printf("sig 8 failed to parse: "); - DetectUricontentPrint((DetectContentData*) s->sm_lists_tail[g_http_uri_buffer_id]->ctx); - goto end; - } + FAIL_IF_NULL(s); + FAIL_IF_NULL(s->sm_lists[g_http_uri_buffer_id]); + FAIL_IF_NULL(s->sm_lists[DETECT_SM_LIST_PMATCH]); + FAIL_IF_NOT(((DetectContentData *)s->sm_lists[g_http_uri_buffer_id]->ctx)->depth = 15); + FAIL_IF_NOT(((DetectContentData *)s->sm_lists[g_http_uri_buffer_id]->ctx)->offset = 5); + FAIL_IF_NOT_NULL(s->sm_lists[DETECT_SM_LIST_MATCH]); + + s = SigInit(de_ctx, "alert tcp any any -> any any (msg:" + "\" Test uricontent and content\"; " + "uricontent:\"foo\"; content:\"bar\";" + " depth:10; offset: 5; within:3; sid:1;)"); + + FAIL_IF_NOT_NULL(s); + + s = SigInit(de_ctx, "alert tcp any any -> any any (msg:" + "\" Test uricontent and content\"; " + "uricontent:\"foo\"; content:\"bar\";" + " depth:10; offset: 5; distance:3; sid:1;)"); + FAIL_IF_NOT_NULL(s); + + s = SigInit(de_ctx, "alert tcp any any -> any any (msg:" + "\" Test uricontent and content\"; " + "uricontent:\"foo\"; content:\"bar\";" + " depth:10; offset: 5; content:" + "\"two_contents\"; within:30; sid:1;)"); - s = SigInit(de_ctx,"alert tcp any any -> any any (msg:" - "\" Test uricontent and content\"; " - "uricontent:\"foo\"; content:\"bar\";" - " depth:10; offset: 5; content:" - "\"two_contents\"; distance:30; sid:1;)"); - if (s == NULL) { - goto end; - } else if ( - s->sm_lists[g_http_uri_buffer_id] == NULL || - s->sm_lists[DETECT_SM_LIST_PMATCH] == NULL || - ((DetectContentData*) s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->depth != 15 || - ((DetectContentData*) s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->offset != 5 || - ((DetectContentData*) s->sm_lists_tail[DETECT_SM_LIST_PMATCH]->ctx)->distance != 30 || - s->sm_lists[DETECT_SM_LIST_MATCH] != NULL) - { - printf("sig 9 failed to parse: "); - DetectContentPrint((DetectContentData*) s->sm_lists_tail[DETECT_SM_LIST_PMATCH]->ctx); - goto end; - } + FAIL_IF_NULL(s); + FAIL_IF_NULL(s->sm_lists[g_http_uri_buffer_id]); + FAIL_IF_NULL(s->sm_lists[DETECT_SM_LIST_PMATCH]); + FAIL_IF_NOT(((DetectContentData *)s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->depth = 15); + FAIL_IF_NOT(((DetectContentData *)s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->offset = 5); + FAIL_IF_NOT(((DetectContentData *)s->sm_lists_tail[DETECT_SM_LIST_PMATCH]->ctx)->within = 30); + FAIL_IF_NOT_NULL(s->sm_lists[DETECT_SM_LIST_MATCH]); + + s = SigInit(de_ctx, "alert tcp any any -> any any (msg:" + "\" Test uricontent and content\"; " + "uricontent:\"foo\"; content:\"bar\";" + " depth:10; offset: 5; uricontent:" + "\"two_uricontents\"; within:30; sid:1;)"); - s = SigInit(de_ctx,"alert tcp any any -> any any (msg:" - "\" Test uricontent and content\"; " - "uricontent:\"foo\"; content:\"bar\";" - " depth:10; offset: 5; uricontent:" - "\"two_uricontents\"; distance:30; sid:1;)"); - if (s == NULL) { - goto end; - } else if ( - s->sm_lists[g_http_uri_buffer_id] == NULL || - s->sm_lists[DETECT_SM_LIST_PMATCH] == NULL || - ((DetectContentData*) s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->depth != 15 || - ((DetectContentData*) s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->offset != 5 || - ((DetectContentData*) s->sm_lists_tail[g_http_uri_buffer_id]->ctx)->distance != 30 || - s->sm_lists[DETECT_SM_LIST_MATCH] != NULL) - { - printf("sig 10 failed to parse: "); - DetectUricontentPrint((DetectContentData*) s->sm_lists_tail[g_http_uri_buffer_id]->ctx); - goto end; - } + FAIL_IF_NULL(s); + FAIL_IF_NULL(s->sm_lists[g_http_uri_buffer_id]); + FAIL_IF_NULL(s->sm_lists[DETECT_SM_LIST_PMATCH]); + FAIL_IF_NOT(((DetectContentData *)s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->depth = 15); + FAIL_IF_NOT(((DetectContentData *)s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->offset = 5); + FAIL_IF_NOT(((DetectContentData *)s->sm_lists_tail[g_http_uri_buffer_id]->ctx)->within = 30); + FAIL_IF_NOT_NULL(s->sm_lists[DETECT_SM_LIST_MATCH]); + + s = SigInit(de_ctx, "alert tcp any any -> any any (msg:" + "\" Test uricontent and content\"; " + "uricontent:\"foo\"; content:\"bar\";" + " depth:10; offset: 5; content:" + "\"two_contents\"; distance:30; sid:1;)"); - s = SigInit(de_ctx,"alert tcp any any -> any any (msg:" - "\" Test uricontent and content\"; " - "uricontent:\"foo\"; content:\"bar\";" - " depth:10; offset: 5; uricontent:" - "\"two_uricontents\"; distance:30; " - "within:60; content:\"two_contents\";" - " within:70; distance:45; sid:1;)"); - if (s == NULL) { - printf("sig 10 failed to parse: "); - goto end; - } + FAIL_IF_NULL(s); + FAIL_IF_NULL(s->sm_lists[g_http_uri_buffer_id]); + FAIL_IF_NULL(s->sm_lists[DETECT_SM_LIST_PMATCH]); + FAIL_IF_NOT(((DetectContentData *)s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->depth = 15); + FAIL_IF_NOT(((DetectContentData *)s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->offset = 5); + FAIL_IF_NOT(((DetectContentData *)s->sm_lists_tail[DETECT_SM_LIST_PMATCH]->ctx)->distance = 30); + FAIL_IF_NOT_NULL(s->sm_lists[DETECT_SM_LIST_MATCH]); + + s = SigInit(de_ctx, "alert tcp any any -> any any (msg:" + "\" Test uricontent and content\"; " + "uricontent:\"foo\"; content:\"bar\";" + " depth:10; offset: 5; uricontent:" + "\"two_uricontents\"; distance:30; sid:1;)"); - if (s->sm_lists[g_http_uri_buffer_id] == NULL || s->sm_lists[DETECT_SM_LIST_PMATCH] == NULL) { - printf("umatch %p or pmatch %p: ", s->sm_lists[g_http_uri_buffer_id], s->sm_lists[DETECT_SM_LIST_PMATCH]); - goto end; - } + FAIL_IF_NULL(s); + FAIL_IF_NULL(s->sm_lists[g_http_uri_buffer_id]); + FAIL_IF_NULL(s->sm_lists[DETECT_SM_LIST_PMATCH]); + FAIL_IF_NOT(((DetectContentData *)s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->depth = 15); + FAIL_IF_NOT(((DetectContentData *)s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->offset = 5); + FAIL_IF_NOT(((DetectContentData *)s->sm_lists_tail[g_http_uri_buffer_id]->ctx)->distance = 30); + FAIL_IF_NOT_NULL(s->sm_lists[DETECT_SM_LIST_MATCH]); + + s = SigInit(de_ctx, "alert tcp any any -> any any (msg:" + "\" Test uricontent and content\"; " + "uricontent:\"foo\"; content:\"bar\";" + " depth:10; offset: 5; uricontent:" + "\"two_uricontents\"; distance:30; " + "within:60; content:\"two_contents\";" + " within:70; distance:45; sid:1;)"); + FAIL_IF_NULL(s); - if ( ((DetectContentData*) s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->depth != 15 || - ((DetectContentData*) s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->offset != 5 || - ((DetectContentData*) s->sm_lists_tail[g_http_uri_buffer_id]->ctx)->distance != 30 || - ((DetectContentData*) s->sm_lists_tail[g_http_uri_buffer_id]->ctx)->within != 60 || - ((DetectContentData*) s->sm_lists_tail[DETECT_SM_LIST_PMATCH]->ctx)->distance != 45 || - ((DetectContentData*) s->sm_lists_tail[DETECT_SM_LIST_PMATCH]->ctx)->within != 70 || - s->sm_lists[DETECT_SM_LIST_MATCH] != NULL) { - printf("sig 10 failed to parse, content not setup properly: "); - DetectContentPrint((DetectContentData*) s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx); - DetectUricontentPrint((DetectContentData*) s->sm_lists_tail[g_http_uri_buffer_id]->ctx); - DetectContentPrint((DetectContentData*) s->sm_lists_tail[DETECT_SM_LIST_PMATCH]->ctx); - goto end; - } + FAIL_IF_NULL(s->sm_lists[g_http_uri_buffer_id]); + FAIL_IF_NULL(s->sm_lists[DETECT_SM_LIST_PMATCH]); + FAIL_IF_NOT(((DetectContentData *)s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->depth = 15); + FAIL_IF_NOT(((DetectContentData *)s->sm_lists[DETECT_SM_LIST_PMATCH]->ctx)->offset = 5); + FAIL_IF_NOT(((DetectContentData *)s->sm_lists_tail[g_http_uri_buffer_id]->ctx)->distance = 30); + FAIL_IF_NOT(((DetectContentData *)s->sm_lists_tail[g_http_uri_buffer_id]->ctx)->within = 60); + FAIL_IF_NOT(((DetectContentData *)s->sm_lists_tail[DETECT_SM_LIST_PMATCH]->ctx)->distance = 45); + FAIL_IF_NOT(((DetectContentData *)s->sm_lists_tail[DETECT_SM_LIST_PMATCH]->ctx)->within = 70); + FAIL_IF_NOT_NULL(s->sm_lists[DETECT_SM_LIST_MATCH]); - result = 1; -end: - if (de_ctx != NULL) - DetectEngineCtxFree(de_ctx); - return result; + DetectEngineCtxFree(de_ctx); + PASS; } /** @@ -433,28 +331,16 @@ end: */ static int DetectUriSigTest03(void) { - DetectEngineCtx *de_ctx = NULL; - int result = 1; - - de_ctx = DetectEngineCtxInit(); - if (de_ctx == NULL) - goto end; - + DetectEngineCtx *de_ctx = DetectEngineCtxInit(); + FAIL_IF_NULL(de_ctx); de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, - "alert udp any any -> any any " - "(msg:\"test\"; uricontent:\"\"; sid:238012;)"); - if (de_ctx->sig_list != NULL) { - result = 0; - goto end; - } - end: - SigGroupCleanup(de_ctx); - SigCleanSignatures(de_ctx); - DetectEngineCtxFree(de_ctx); + Signature *s = DetectEngineAppendSig(de_ctx, "alert udp any any -> any any " + "(msg:\"test\"; uricontent:\"\"; sid:238012;)"); + FAIL_IF_NOT_NULL(s); - return result; + DetectEngineCtxFree(de_ctx); + PASS; } /** @@ -462,28 +348,16 @@ static int DetectUriSigTest03(void) */ static int DetectUriSigTest04(void) { - DetectEngineCtx *de_ctx = NULL; - int result = 1; - - de_ctx = DetectEngineCtxInit(); - if (de_ctx == NULL) - goto end; - + DetectEngineCtx *de_ctx = DetectEngineCtxInit(); + FAIL_IF_NULL(de_ctx); de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, - "alert udp any any -> any any " - "(msg:\"test\"; uricontent:\"; sid:238012;)"); - if (de_ctx->sig_list != NULL) { - result = 0; - goto end; - } - end: - SigGroupCleanup(de_ctx); - SigCleanSignatures(de_ctx); - DetectEngineCtxFree(de_ctx); + Signature *s = DetectEngineAppendSig(de_ctx, "alert udp any any -> any any " + "(msg:\"test\"; uricontent:\"; sid:238012;)"); + FAIL_IF_NOT_NULL(s); - return result; + DetectEngineCtxFree(de_ctx); + PASS; } /** @@ -491,28 +365,16 @@ static int DetectUriSigTest04(void) */ static int DetectUriSigTest05(void) { - DetectEngineCtx *de_ctx = NULL; - int result = 1; - - de_ctx = DetectEngineCtxInit(); - if (de_ctx == NULL) - goto end; - + DetectEngineCtx *de_ctx = DetectEngineCtxInit(); + FAIL_IF_NULL(de_ctx); de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, - "alert udp any any -> any any " - "(msg:\"test\"; uricontent:\"boo; sid:238012;)"); - if (de_ctx->sig_list != NULL) { - result = 0; - goto end; - } - end: - SigGroupCleanup(de_ctx); - SigCleanSignatures(de_ctx); - DetectEngineCtxFree(de_ctx); + Signature *s = DetectEngineAppendSig(de_ctx, "alert udp any any -> any any " + "(msg:\"test\"; uricontent:\"boo; sid:238012;)"); + FAIL_IF_NOT_NULL(s); - return result; + DetectEngineCtxFree(de_ctx); + PASS; } /** @@ -520,28 +382,16 @@ static int DetectUriSigTest05(void) */ static int DetectUriSigTest06(void) { - DetectEngineCtx *de_ctx = NULL; - int result = 1; - - de_ctx = DetectEngineCtxInit(); - if (de_ctx == NULL) - goto end; - + DetectEngineCtx *de_ctx = DetectEngineCtxInit(); + FAIL_IF_NULL(de_ctx); de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, - "alert udp any any -> any any " - "(msg:\"test\"; uricontent:boo\"; sid:238012;)"); - if (de_ctx->sig_list != NULL) { - result = 0; - goto end; - } - end: - SigGroupCleanup(de_ctx); - SigCleanSignatures(de_ctx); - DetectEngineCtxFree(de_ctx); + Signature *s = DetectEngineAppendSig(de_ctx, "alert udp any any -> any any " + "(msg:\"test\"; uricontent:boo\"; sid:238012;)"); + FAIL_IF_NOT_NULL(s); - return result; + DetectEngineCtxFree(de_ctx); + PASS; } /** @@ -549,38 +399,25 @@ static int DetectUriSigTest06(void) */ static int DetectUriSigTest07(void) { - DetectEngineCtx *de_ctx = NULL; DetectContentData *ud = 0; Signature *s = NULL; - int result = 0; - de_ctx = DetectEngineCtxInit(); - if (de_ctx == NULL) - goto end; + DetectEngineCtx *de_ctx = DetectEngineCtxInit(); + FAIL_IF_NULL(de_ctx); de_ctx->flags |= DE_QUIET; - s = de_ctx->sig_list = SigInit(de_ctx, - "alert udp any any -> any any " - "(msg:\"test\"; uricontent: !\"boo\"; sid:238012;)"); - if (de_ctx->sig_list == NULL) { - printf("de_ctx->sig_list == NULL: "); - goto end; - } + s = DetectEngineAppendSig(de_ctx, "alert udp any any -> any any " + "(msg:\"test\"; uricontent: !\"boo\"; sid:238012;)"); + FAIL_IF_NULL(s); - if (s->sm_lists_tail[g_http_uri_buffer_id] == NULL || s->sm_lists_tail[g_http_uri_buffer_id]->ctx == NULL) { - printf("de_ctx->pmatch_tail == NULL && de_ctx->pmatch_tail->ctx == NULL: "); - goto end; - } + FAIL_IF_NULL(s->sm_lists_tail[g_http_uri_buffer_id]); + FAIL_IF_NULL(s->sm_lists_tail[g_http_uri_buffer_id]->ctx); ud = (DetectContentData *)s->sm_lists_tail[g_http_uri_buffer_id]->ctx; - result = (strncmp("boo", (char *)ud->content, ud->content_len) == 0); + FAIL_IF_NOT(strncmp("boo", (char *)ud->content, ud->content_len) == 0); -end: - SigGroupCleanup(de_ctx); - SigCleanSignatures(de_ctx); DetectEngineCtxFree(de_ctx); - - return result; + PASS; } @@ -589,28 +426,16 @@ end: */ static int DetectUriContentParseTest08(void) { - DetectEngineCtx *de_ctx = NULL; - int result = 1; - - de_ctx = DetectEngineCtxInit(); - if (de_ctx == NULL) - goto end; - + DetectEngineCtx *de_ctx = DetectEngineCtxInit(); + FAIL_IF_NULL(de_ctx); de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, - "alert udp any any -> any any " - "(msg:\"test\"; uricontent:\"|\"; sid:1;)"); - if (de_ctx->sig_list != NULL) { - result = 0; - goto end; - } - end: - SigGroupCleanup(de_ctx); - SigCleanSignatures(de_ctx); - DetectEngineCtxFree(de_ctx); + Signature *s = DetectEngineAppendSig(de_ctx, "alert udp any any -> any any " + "(msg:\"test\"; uricontent:\"|\"; sid:1;)"); + FAIL_IF_NOT_NULL(s); - return result; + DetectEngineCtxFree(de_ctx); + PASS; } /** @@ -618,28 +443,16 @@ static int DetectUriContentParseTest08(void) */ static int DetectUriContentParseTest09(void) { - DetectEngineCtx *de_ctx = NULL; - int result = 1; - - de_ctx = DetectEngineCtxInit(); - if (de_ctx == NULL) - goto end; - + DetectEngineCtx *de_ctx = DetectEngineCtxInit(); + FAIL_IF_NULL(de_ctx); de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, - "alert udp any any -> any any " - "(msg:\"test\"; uricontent:\"|af\"; sid:1;)"); - if (de_ctx->sig_list != NULL) { - result = 0; - goto end; - } - end: - SigGroupCleanup(de_ctx); - SigCleanSignatures(de_ctx); - DetectEngineCtxFree(de_ctx); + Signature *s = DetectEngineAppendSig(de_ctx, "alert udp any any -> any any " + "(msg:\"test\"; uricontent:\"|af\"; sid:1;)"); + FAIL_IF_NOT_NULL(s); - return result; + DetectEngineCtxFree(de_ctx); + PASS; } /** @@ -647,28 +460,16 @@ static int DetectUriContentParseTest09(void) */ static int DetectUriContentParseTest10(void) { - DetectEngineCtx *de_ctx = NULL; - int result = 1; - - de_ctx = DetectEngineCtxInit(); - if (de_ctx == NULL) - goto end; - + DetectEngineCtx *de_ctx = DetectEngineCtxInit(); + FAIL_IF_NULL(de_ctx); de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, - "alert udp any any -> any any " - "(msg:\"test\"; uricontent:\"af|\"; sid:1;)"); - if (de_ctx->sig_list != NULL) { - result = 0; - goto end; - } - end: - SigGroupCleanup(de_ctx); - SigCleanSignatures(de_ctx); - DetectEngineCtxFree(de_ctx); + Signature *s = DetectEngineAppendSig(de_ctx, "alert udp any any -> any any " + "(msg:\"test\"; uricontent:\"af|\"; sid:1;)"); + FAIL_IF_NOT_NULL(s); - return result; + DetectEngineCtxFree(de_ctx); + PASS; } /** @@ -676,28 +477,16 @@ static int DetectUriContentParseTest10(void) */ static int DetectUriContentParseTest11(void) { - DetectEngineCtx *de_ctx = NULL; - int result = 1; - - de_ctx = DetectEngineCtxInit(); - if (de_ctx == NULL) - goto end; - + DetectEngineCtx *de_ctx = DetectEngineCtxInit(); + FAIL_IF_NULL(de_ctx); de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, - "alert udp any any -> any any " - "(msg:\"test\"; uricontent:\"|af|\"; sid:1;)"); - if (de_ctx->sig_list == NULL) { - result = 0; - goto end; - } - end: - SigGroupCleanup(de_ctx); - SigCleanSignatures(de_ctx); - DetectEngineCtxFree(de_ctx); + Signature *s = DetectEngineAppendSig(de_ctx, "alert udp any any -> any any " + "(msg:\"test\"; uricontent:\"|af|\"; sid:1;)"); + FAIL_IF_NULL(s); - return result; + DetectEngineCtxFree(de_ctx); + PASS; } /** @@ -705,28 +494,16 @@ static int DetectUriContentParseTest11(void) */ static int DetectUriContentParseTest12(void) { - DetectEngineCtx *de_ctx = NULL; - int result = 1; - - de_ctx = DetectEngineCtxInit(); - if (de_ctx == NULL) - goto end; - + DetectEngineCtx *de_ctx = DetectEngineCtxInit(); + FAIL_IF_NULL(de_ctx); de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, - "alert udp any any -> any any " - "(msg:\"test\"; uricontent:\"aast|\"; sid:1;)"); - if (de_ctx->sig_list != NULL) { - result = 0; - goto end; - } - end: - SigGroupCleanup(de_ctx); - SigCleanSignatures(de_ctx); - DetectEngineCtxFree(de_ctx); + Signature *s = DetectEngineAppendSig(de_ctx, "alert udp any any -> any any " + "(msg:\"test\"; uricontent:\"aast|\"; sid:1;)"); + FAIL_IF_NOT_NULL(s); - return result; + DetectEngineCtxFree(de_ctx); + PASS; } /** @@ -734,28 +511,16 @@ static int DetectUriContentParseTest12(void) */ static int DetectUriContentParseTest13(void) { - DetectEngineCtx *de_ctx = NULL; - int result = 1; - - de_ctx = DetectEngineCtxInit(); - if (de_ctx == NULL) - goto end; - + DetectEngineCtx *de_ctx = DetectEngineCtxInit(); + FAIL_IF_NULL(de_ctx); de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, - "alert udp any any -> any any " - "(msg:\"test\"; uricontent:\"aast|af\"; sid:1;)"); - if (de_ctx->sig_list != NULL) { - result = 0; - goto end; - } - end: - SigGroupCleanup(de_ctx); - SigCleanSignatures(de_ctx); - DetectEngineCtxFree(de_ctx); + Signature *s = DetectEngineAppendSig(de_ctx, "alert udp any any -> any any " + "(msg:\"test\"; uricontent:\"aast|af\"; sid:1;)"); + FAIL_IF_NOT_NULL(s); - return result; + DetectEngineCtxFree(de_ctx); + PASS; } /** @@ -763,28 +528,16 @@ static int DetectUriContentParseTest13(void) */ static int DetectUriContentParseTest14(void) { - DetectEngineCtx *de_ctx = NULL; - int result = 1; - - de_ctx = DetectEngineCtxInit(); - if (de_ctx == NULL) - goto end; - + DetectEngineCtx *de_ctx = DetectEngineCtxInit(); + FAIL_IF_NULL(de_ctx); de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, - "alert udp any any -> any any " - "(msg:\"test\"; uricontent:\"aast|af|\"; sid:1;)"); - if (de_ctx->sig_list == NULL) { - result = 0; - goto end; - } - end: - SigGroupCleanup(de_ctx); - SigCleanSignatures(de_ctx); - DetectEngineCtxFree(de_ctx); + Signature *s = DetectEngineAppendSig(de_ctx, "alert udp any any -> any any " + "(msg:\"test\"; uricontent:\"aast|af|\"; sid:1;)"); + FAIL_IF_NULL(s); - return result; + DetectEngineCtxFree(de_ctx); + PASS; } /** @@ -792,28 +545,16 @@ static int DetectUriContentParseTest14(void) */ static int DetectUriContentParseTest15(void) { - DetectEngineCtx *de_ctx = NULL; - int result = 1; - - de_ctx = DetectEngineCtxInit(); - if (de_ctx == NULL) - goto end; - + DetectEngineCtx *de_ctx = DetectEngineCtxInit(); + FAIL_IF_NULL(de_ctx); de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, - "alert udp any any -> any any " - "(msg:\"test\"; uricontent:\"|af|asdf\"; sid:1;)"); - if (de_ctx->sig_list == NULL) { - result = 0; - goto end; - } - end: - SigGroupCleanup(de_ctx); - SigCleanSignatures(de_ctx); - DetectEngineCtxFree(de_ctx); + Signature *s = DetectEngineAppendSig(de_ctx, "alert udp any any -> any any " + "(msg:\"test\"; uricontent:\"|af|asdf\"; sid:1;)"); + FAIL_IF_NULL(s); - return result; + DetectEngineCtxFree(de_ctx); + PASS; } /** @@ -821,28 +562,16 @@ static int DetectUriContentParseTest15(void) */ static int DetectUriContentParseTest16(void) { - DetectEngineCtx *de_ctx = NULL; - int result = 1; - - de_ctx = DetectEngineCtxInit(); - if (de_ctx == NULL) - goto end; - + DetectEngineCtx *de_ctx = DetectEngineCtxInit(); + FAIL_IF_NULL(de_ctx); de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, - "alert udp any any -> any any " - "(msg:\"test\"; uricontent:\"|af|af|\"; sid:1;)"); - if (de_ctx->sig_list != NULL) { - result = 0; - goto end; - } - end: - SigGroupCleanup(de_ctx); - SigCleanSignatures(de_ctx); - DetectEngineCtxFree(de_ctx); + Signature *s = DetectEngineAppendSig(de_ctx, "alert udp any any -> any any " + "(msg:\"test\"; uricontent:\"|af|af|\"; sid:1;)"); + FAIL_IF_NOT_NULL(s); - return result; + DetectEngineCtxFree(de_ctx); + PASS; } /** @@ -850,28 +579,17 @@ static int DetectUriContentParseTest16(void) */ static int DetectUriContentParseTest17(void) { - DetectEngineCtx *de_ctx = NULL; - int result = 1; - - de_ctx = DetectEngineCtxInit(); - if (de_ctx == NULL) - goto end; - + DetectEngineCtx *de_ctx = DetectEngineCtxInit(); + FAIL_IF_NULL(de_ctx); de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, - "alert udp any any -> any any " - "(msg:\"test\"; uricontent:\"|af|af|af\"; sid:1;)"); - if (de_ctx->sig_list != NULL) { - result = 0; - goto end; - } - end: - SigGroupCleanup(de_ctx); - SigCleanSignatures(de_ctx); - DetectEngineCtxFree(de_ctx); + Signature *s = + DetectEngineAppendSig(de_ctx, "alert udp any any -> any any " + "(msg:\"test\"; uricontent:\"|af|af|af\"; sid:1;)"); + FAIL_IF_NOT_NULL(s); - return result; + DetectEngineCtxFree(de_ctx); + PASS; } /** @@ -879,28 +597,17 @@ static int DetectUriContentParseTest17(void) */ static int DetectUriContentParseTest18(void) { - DetectEngineCtx *de_ctx = NULL; - int result = 1; - - de_ctx = DetectEngineCtxInit(); - if (de_ctx == NULL) - goto end; - + DetectEngineCtx *de_ctx = DetectEngineCtxInit(); + FAIL_IF_NULL(de_ctx); de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, - "alert udp any any -> any any " - "(msg:\"test\"; uricontent:\"|af|af|af|\"; sid:1;)"); - if (de_ctx->sig_list == NULL) { - result = 0; - goto end; - } - end: - SigGroupCleanup(de_ctx); - SigCleanSignatures(de_ctx); - DetectEngineCtxFree(de_ctx); + Signature *s = + DetectEngineAppendSig(de_ctx, "alert udp any any -> any any " + "(msg:\"test\"; uricontent:\"|af|af|af|\"; sid:1;)"); + FAIL_IF_NULL(s); - return result; + DetectEngineCtxFree(de_ctx); + PASS; } /** @@ -908,28 +615,16 @@ static int DetectUriContentParseTest18(void) */ static int DetectUriContentParseTest19(void) { - DetectEngineCtx *de_ctx = NULL; - int result = 1; - - de_ctx = DetectEngineCtxInit(); - if (de_ctx == NULL) - goto end; - + DetectEngineCtx *de_ctx = DetectEngineCtxInit(); + FAIL_IF_NULL(de_ctx); de_ctx->flags |= DE_QUIET; - de_ctx->sig_list = SigInit(de_ctx, - "alert tcp any any -> any any " - "(msg:\"test\"; uricontent:\"\"; sid:1;)"); - if (de_ctx->sig_list != NULL) { - result = 0; - goto end; - } - end: - SigGroupCleanup(de_ctx); - SigCleanSignatures(de_ctx); - DetectEngineCtxFree(de_ctx); + Signature *s = DetectEngineAppendSig(de_ctx, "alert tcp any any -> any any " + "(msg:\"test\"; uricontent:\"\"; sid:1;)"); + FAIL_IF_NOT_NULL(s); - return result; + DetectEngineCtxFree(de_ctx); + PASS; } static int DetectUricontentIsdataatParseTest(void)