From: Giuseppe Longo Date: Sat, 9 Mar 2019 21:36:03 +0000 (+0100) Subject: detect-iprep: fix memory leaks X-Git-Tag: suricata-5.0.0-beta1~148 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=389227d899c3ef0bc2a45d04c159db75c6064ba8;p=thirdparty%2Fsuricata.git detect-iprep: fix memory leaks Loading rules with iprep keyword cause memory leaks due to missing frees. Direct leak of 8 byte(s) in 4 object(s) allocated from: #0 0x7f81c862bd28 in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc1d28) #1 0x7f81c6afea69 in pcre_get_substring (/lib/x86_64-linux-gnu/libpcre.so.3+0x27a69) #2 0x43206f7420676e68 () SUMMARY: AddressSanitizer: 8 byte(s) leaked in 4 allocation(s). --- diff --git a/src/detect-iprep.c b/src/detect-iprep.c index e3cfe1b032..765ceabdae 100644 --- a/src/detect-iprep.c +++ b/src/detect-iprep.c @@ -341,6 +341,10 @@ int DetectIPRepSetup (DetectEngineCtx *de_ctx, Signature *s, const char *rawstr) name = NULL; pcre_free_substring(cmd_str); cmd_str = NULL; + pcre_free_substring(op_str); + op_str = NULL; + pcre_free_substring(value); + value = NULL; /* Okay so far so good, lets get this into a SigMatch * and put it in the Signature. */ @@ -360,6 +364,10 @@ error: pcre_free_substring(name); if (cmd_str != NULL) pcre_free_substring(cmd_str); + if (op_str != NULL) + pcre_free_substring(op_str); + if (value != NULL) + pcre_free_substring(value); if (cd != NULL) SCFree(cd); if (sm != NULL)