Coverity 989710 and 989711: small recourse leaks in filemd5 parsing code.

pull/320/merge
Victor Julien 13 years ago
parent 12e4105dc3
commit 3163243a55

@ -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;
}

Loading…
Cancel
Save