From 9e5049cddc159045a926d6187223fa6ee653b95d Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Tue, 2 Sep 2008 00:30:36 +0200 Subject: [PATCH] Improve memory handling and parsing of the msg rule keyword. --- src/detect-msg.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/detect-msg.c b/src/detect-msg.c index 45d4b37dff..a8d230210a 100644 --- a/src/detect-msg.c +++ b/src/detect-msg.c @@ -17,18 +17,24 @@ void DetectMsgRegister (void) { int DetectMsgSetup (Signature *s, SigMatch *m, char *msgstr) { char *str = msgstr; - char dubbed = 0; /* strip "'s */ if (msgstr[0] == '\"' && msgstr[strlen(msgstr)-1] == '\"') { str = strdup(msgstr+1); str[strlen(msgstr)-2] = '\0'; - dubbed = 1; + } else if (msgstr[1] == '\"' && msgstr[strlen(msgstr)-1] == '\"') { + /* XXX do this parsing in a better way */ + str = strdup(msgstr+2); + str[strlen(msgstr)-3] = '\0'; + //printf("DetectMsgSetup: format hack applied: \'%s\'\n", str); + } else { + printf("DetectMsgSetup: format error \'%s\'\n", msgstr); + return -1; } s->msg = strdup(str); - if (dubbed) free(str); + free(str); return 0; }