]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
Improve pktvar keyword parsing and error handling.
authorVictor Julien <victor@inliniac.net>
Tue, 3 Jul 2012 13:15:19 +0000 (15:15 +0200)
committerVictor Julien <victor@inliniac.net>
Tue, 3 Jul 2012 13:15:19 +0000 (15:15 +0200)
src/detect-pktvar.c

index 9f00bc002c76748ca39a9fd26adbff33f61e6ce5..6973ede5a7f3816795ab5cd1e2c166392f71bcb1 100644 (file)
@@ -218,6 +218,12 @@ static int DetectPktvarSetup (DetectEngineCtx *de_ctx, Signature *s, char *rawst
     }
 
     cd->name = SCStrdup(varname);
+    if (cd->name == NULL) {
+        SCFree(cd);
+        if (dubbed) SCFree(str);
+        return -1;
+    }
+
     memcpy(cd->content, str, len);
     cd->content_len = len;
     cd->flags = 0;
@@ -237,9 +243,15 @@ static int DetectPktvarSetup (DetectEngineCtx *de_ctx, Signature *s, char *rawst
     return 0;
 
 error:
-    if (dubbed) SCFree(str);
-    if (cd) SCFree(cd);
-    if (sm) SCFree(sm);
+    if (dubbed)
+        SCFree(str);
+    if (cd) {
+        if (cd->name)
+            SCFree(cd->name);
+        SCFree(cd);
+    }
+    if (sm)
+        SCFree(sm);
     return -1;
 }