From: Victor Julien Date: Wed, 13 Mar 2013 09:16:15 +0000 (+0100) Subject: Coverity 989710 and 989711: small recourse leaks in filemd5 parsing code. X-Git-Tag: suricata-2.0beta1~220 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3163243a551943b989b9c378ef8425473a4a09a1;p=thirdparty%2Fsuricata.git Coverity 989710 and 989711: small recourse leaks in filemd5 parsing code. --- diff --git a/src/detect-filemd5.c b/src/detect-filemd5.c index 194b8d85dc..b08846e77d 100644 --- a/src/detect-filemd5.c +++ b/src/detect-filemd5.c @@ -208,6 +208,8 @@ static int DetectFileMd5Match (ThreadVars *t, DetectEngineThreadCtx *det_ctx, static DetectFileMd5Data *DetectFileMd5Parse (char *str) { DetectFileMd5Data *filemd5 = NULL; + FILE *fp = NULL; + char *filename = NULL; /* We have a correct filemd5 option */ filemd5 = SCMalloc(sizeof(DetectFileMd5Data)); @@ -227,16 +229,16 @@ static DetectFileMd5Data *DetectFileMd5Parse (char *str) } /* get full filename */ - char *filename = DetectLoadCompleteSigPath(str); + filename = DetectLoadCompleteSigPath(str); if (filename == NULL) { goto error; } char line[8192] = ""; - FILE *fp = fopen(filename, "r"); + fp = fopen(filename, "r"); if (fp == NULL) { SCLogError(SC_ERR_OPENING_RULE_FILE, "opening md5 file %s: %s", filename, strerror(errno)); - return NULL; + goto error; } int line_no = 0; @@ -272,11 +274,16 @@ static DetectFileMd5Data *DetectFileMd5Parse (char *str) } SCLogInfo("MD5 hash size %u bytes%s", ROHashMemorySize(filemd5->hash), filemd5->negated ? ", negated match" : ""); + SCFree(filename); return filemd5; error: if (filemd5 != NULL) DetectFileMd5Free(filemd5); + if (fp != NULL) + fclose(fp); + if (filename != NULL) + SCFree(filename); return NULL; }