]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
detect: fix port parsing memory leak
authorVictor Julien <victor@inliniac.net>
Fri, 20 Oct 2017 07:50:59 +0000 (09:50 +0200)
committerVictor Julien <victor@inliniac.net>
Tue, 24 Oct 2017 11:47:02 +0000 (13:47 +0200)
Leak in error path as seen by scan-build:

  CC       detect-engine-port.o
detect-engine-port.c:1083:13: warning: Potential leak of memory pointed to by 'temp_rule_var_port'
    return -1;
            ^

src/detect-engine-port.c

index db0ab8354f3127eb69803467148764c99a11b9d8..72f28c599eca49eb646d297f72e3acb7a3b849d4 100644 (file)
@@ -977,9 +977,10 @@ static int DetectPortParseDo(const DetectEngineCtx *de_ctx,
                 temp_rule_var_port = alloc_rule_var_port;
                 r = DetectPortParseDo(de_ctx, head, nhead, temp_rule_var_port,
                                   (negate + n_set) % 2, var_list);//negate? negate: n_set);
-                if (r == -1)
+                if (r == -1) {
+                    SCFree(alloc_rule_var_port);
                     goto error;
-
+                }
                 d_set = 0;
                 n_set = 0;
                 SCFree(alloc_rule_var_port);