source-pcap-file: Fix coverity findings (Bug #2356)

https://redmine.openinfosecfoundation.org/issues/2356

Address issues found by coverity for resource leaks and use after free.
pull/3085/head
Danny Browning 8 years ago committed by Victor Julien
parent 75d7fdb693
commit e2043668cb

@ -423,6 +423,7 @@ TmEcode PcapDirectoryDispatchForTimeRange(PcapFileDirectoryVars *pv,
pftv->filename = SCStrdup(current_file->filename); pftv->filename = SCStrdup(current_file->filename);
if (unlikely(pftv->filename == NULL)) { if (unlikely(pftv->filename == NULL)) {
SCLogError(SC_ERR_MEM_ALLOC, "Failed to allocate filename"); SCLogError(SC_ERR_MEM_ALLOC, "Failed to allocate filename");
CleanupPcapFileFileVars(pftv);
SCReturnInt(TM_ECODE_FAILED); SCReturnInt(TM_ECODE_FAILED);
} }
pftv->shared = pv->shared; pftv->shared = pv->shared;
@ -509,7 +510,7 @@ TmEcode PcapDirectoryDispatch(PcapFileDirectoryVars *ptv)
SCLogInfo("Directory %s no longer exists, stopping", SCLogInfo("Directory %s no longer exists, stopping",
ptv->filename); ptv->filename);
status = TM_ECODE_DONE; status = TM_ECODE_DONE;
} else { } else if(directory_check != NULL) {
closedir(directory_check); closedir(directory_check);
} }
} }

@ -270,6 +270,7 @@ TmEcode ReceivePcapFileThreadInit(ThreadVars *tv, const void *initdata, void **d
PcapFileDirectoryVars *pv = SCMalloc(sizeof(PcapFileDirectoryVars)); PcapFileDirectoryVars *pv = SCMalloc(sizeof(PcapFileDirectoryVars));
if (unlikely(pv == NULL)) { if (unlikely(pv == NULL)) {
SCLogError(SC_ERR_MEM_ALLOC, "Failed to allocate directory vars"); SCLogError(SC_ERR_MEM_ALLOC, "Failed to allocate directory vars");
closedir(directory);
CleanupPcapFileThreadVars(ptv); CleanupPcapFileThreadVars(ptv);
SCReturnInt(TM_ECODE_FAILED); SCReturnInt(TM_ECODE_FAILED);
} }

Loading…
Cancel
Save