file detect: improve cleanup

remotes/origin/master
Victor Julien 14 years ago
parent 4a9fa35cf2
commit d840308ae2

@ -227,6 +227,8 @@ error:
void DetectFileextFree(void *ptr) { void DetectFileextFree(void *ptr) {
if (ptr != NULL) { if (ptr != NULL) {
DetectFileextData *fileext = (DetectFileextData *)ptr; DetectFileextData *fileext = (DetectFileextData *)ptr;
if (fileext->ext != NULL)
SCFree(fileext->ext);
SCFree(fileext); SCFree(fileext);
} }
} }

@ -297,6 +297,8 @@ void DetectFilemagicFree(void *ptr) {
if (filemagic->bm_ctx != NULL) { if (filemagic->bm_ctx != NULL) {
BoyerMooreCtxDeInit(filemagic->bm_ctx); BoyerMooreCtxDeInit(filemagic->bm_ctx);
} }
if (filemagic->name != NULL)
SCFree(filemagic->name);
SCFree(filemagic); SCFree(filemagic);
} }
} }

@ -238,6 +238,8 @@ void DetectFilenameFree(void *ptr) {
if (filename->bm_ctx != NULL) { if (filename->bm_ctx != NULL) {
BoyerMooreCtxDeInit(filename->bm_ctx); BoyerMooreCtxDeInit(filename->bm_ctx);
} }
if (filename->name != NULL)
SCFree(filename->name);
SCFree(filename); SCFree(filename);
} }
} }

@ -59,6 +59,7 @@ static pcre_extra *parse_regex_study;
int DetectFilestoreMatch (ThreadVars *, DetectEngineThreadCtx *, Flow *, uint8_t, void *, Signature *, SigMatch *); int DetectFilestoreMatch (ThreadVars *, DetectEngineThreadCtx *, Flow *, uint8_t, void *, Signature *, SigMatch *);
static int DetectFilestoreSetup (DetectEngineCtx *, Signature *, char *); static int DetectFilestoreSetup (DetectEngineCtx *, Signature *, char *);
static void DetectFilestoreFree(void *);
/** /**
* \brief Registration function for keyword: filestore * \brief Registration function for keyword: filestore
@ -69,7 +70,7 @@ void DetectFilestoreRegister(void) {
sigmatch_table[DETECT_FILESTORE].AppLayerMatch = DetectFilestoreMatch; sigmatch_table[DETECT_FILESTORE].AppLayerMatch = DetectFilestoreMatch;
sigmatch_table[DETECT_FILESTORE].alproto = ALPROTO_HTTP; sigmatch_table[DETECT_FILESTORE].alproto = ALPROTO_HTTP;
sigmatch_table[DETECT_FILESTORE].Setup = DetectFilestoreSetup; sigmatch_table[DETECT_FILESTORE].Setup = DetectFilestoreSetup;
sigmatch_table[DETECT_FILESTORE].Free = NULL; sigmatch_table[DETECT_FILESTORE].Free = DetectFilestoreFree;
sigmatch_table[DETECT_FILESTORE].RegisterTests = NULL; sigmatch_table[DETECT_FILESTORE].RegisterTests = NULL;
const char *eb; const char *eb;
@ -417,3 +418,9 @@ error:
SCFree(sm); SCFree(sm);
return -1; return -1;
} }
static void DetectFilestoreFree(void *ptr) {
if (ptr != NULL) {
SCFree(ptr);
}
}

Loading…
Cancel
Save