From b2c4a50e392a989d56b813c4ae5105b25d41ee66 Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Mon, 9 Dec 2013 18:48:42 +0100 Subject: [PATCH] Fix small memory leak in classtype parsing --- src/detect-classtype.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/detect-classtype.c b/src/detect-classtype.c index 1c76120ef1..fd0aebeb88 100644 --- a/src/detect-classtype.c +++ b/src/detect-classtype.c @@ -93,17 +93,16 @@ static int DetectClasstypeParseRawString(char *rawstr, char *out, size_t outsize #define MAX_SUBSTRINGS 30 int ret = 0; int ov[MAX_SUBSTRINGS]; + size_t len = strlen(rawstr); /* get rid of the double quotes if present */ if (rawstr[0] == '\"' && rawstr[strlen(rawstr) - 1] == '\"') { - if ( (rawstr = SCStrdup(rawstr + 1)) == NULL) { - SCLogError(SC_ERR_MEM_ALLOC, "Error allocating memory"); - goto end; - } + rawstr++; rawstr[strlen(rawstr) - 1] = '\0'; + len -= 2; } - ret = pcre_exec(regex, regex_study, rawstr, strlen(rawstr), 0, 0, ov, 30); + ret = pcre_exec(regex, regex_study, rawstr, len, 0, 0, ov, 30); if (ret < 0) { SCLogError(SC_ERR_PCRE_MATCH, "Invalid Classtype in Signature"); goto end;