From: Eric Leblond Date: Wed, 15 Oct 2014 17:38:20 +0000 (+0200) Subject: detect-dce-opnum: add sanity check X-Git-Tag: suricata-2.1beta2~77 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9a36f7f6332b8d530cb9c1231c88e36bd78978ce;p=thirdparty%2Fsuricata.git detect-dce-opnum: add sanity check Specifying the option dce_opnum without value was triggering a segfault. --- diff --git a/src/detect-dce-opnum.c b/src/detect-dce-opnum.c index b4f77ea69f..559550797e 100644 --- a/src/detect-dce-opnum.c +++ b/src/detect-dce-opnum.c @@ -142,6 +142,10 @@ static inline DetectDceOpnumData *DetectDceOpnumArgParse(const char *arg) char *comma_token = NULL; char *hyphen_token = NULL; + if (arg == NULL) { + goto error; + } + ret = pcre_exec(parse_regex, parse_regex_study, arg, strlen(arg), 0, 0, ov, MAX_SUBSTRINGS); if (ret < 2) { @@ -306,6 +310,12 @@ static int DetectDceOpnumSetup(DetectEngineCtx *de_ctx, Signature *s, char *arg) DetectDceOpnumData *dod = NULL; SigMatch *sm = NULL; + if (arg == NULL) { + SCLogError(SC_ERR_INVALID_SIGNATURE, "Error parsing dce_opnum option in " + "signature, option needs a value"); + goto error; + } + dod = DetectDceOpnumArgParse(arg); if (dod == NULL) { SCLogError(SC_ERR_INVALID_SIGNATURE, "Error parsing dce_opnum option in "