/* Strip leading and trailing "s. */
if (msgstr[pos] == '\"') {
- str = SCStrdup(msgstr+1);
+ str = SCStrdup(msgstr + pos + 1);
if (unlikely(str == NULL))
goto error;
if (strlen(str) && str[strlen(str) - 1] == '\"') {
return result;
}
+static int DetectMsgParseTest03(void)
+{
+ int result = 0;
+ Signature *sig = NULL;
+ char *teststringparsed = "flow stateless to_server";
+ DetectEngineCtx *de_ctx = DetectEngineCtxInit();
+ if (de_ctx == NULL)
+ goto end;
+
+ FILE *fd = SCClassConfGenerateValidDummyClassConfigFD01();
+ SCClassConfLoadClassficationConfigFile(de_ctx, fd);
+
+ sig = SigInit(de_ctx, "alert tcp any any -> any any (msg: \"flow stateless to_server\"; flow:stateless,to_server; content:\"flowstatelesscheck\"; classtype:bad-unknown; sid: 40000002; rev: 1;)");
+ if(sig == NULL)
+ goto end;
+
+ if (strcmp(sig->msg, teststringparsed) != 0) {
+ printf("got \"%s\", expected: \"%s\": ", sig->msg, teststringparsed);
+ goto end;
+ }
+
+ result = 1;
+end:
+ if (sig != NULL)
+ SigFree(sig);
+ if (de_ctx != NULL)
+ DetectEngineCtxFree(de_ctx);
+ return result;
+}
+
#endif /* UNITTESTS */
/**
#ifdef UNITTESTS /* UNITTESTS */
UtRegisterTest("DetectMsgParseTest01", DetectMsgParseTest01);
UtRegisterTest("DetectMsgParseTest02", DetectMsgParseTest02);
+ UtRegisterTest("DetectMsgParseTest03", DetectMsgParseTest03);
#endif /* UNITTESTS */
}