From e7b36051de2e700f37116b7582106def5e344adf Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Tue, 3 Jul 2012 15:15:19 +0200 Subject: [PATCH] Improve pktvar keyword parsing and error handling. --- src/detect-pktvar.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/detect-pktvar.c b/src/detect-pktvar.c index 9f00bc002c..6973ede5a7 100644 --- a/src/detect-pktvar.c +++ b/src/detect-pktvar.c @@ -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; }