Improve memory handling and parsing of the msg rule keyword.

remotes/origin/master-1.0.x
Victor Julien 17 years ago
parent eb1c4e4987
commit 9e5049cddc

@ -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;
}

Loading…
Cancel
Save