]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
source-pcap-file: Fix coverity findings (Bug #2356)
authorDanny Browning <danny.browning@protectwise.com>
Wed, 13 Dec 2017 01:07:09 +0000 (18:07 -0700)
committerVictor Julien <victor@inliniac.net>
Wed, 13 Dec 2017 08:15:05 +0000 (09:15 +0100)
https://redmine.openinfosecfoundation.org/issues/2356

Address issues found by coverity for resource leaks and use after free.

src/source-pcap-file-directory-helper.c
src/source-pcap-file.c

index cd15a4786be2542252867be1ec07afb7b67ac933..7b84090b9a3c84d7f1ee0f9f3d1aad683d5507e9 100644 (file)
@@ -423,6 +423,7 @@ TmEcode PcapDirectoryDispatchForTimeRange(PcapFileDirectoryVars *pv,
                 pftv->filename = SCStrdup(current_file->filename);
                 if (unlikely(pftv->filename == NULL)) {
                     SCLogError(SC_ERR_MEM_ALLOC, "Failed to allocate filename");
+                    CleanupPcapFileFileVars(pftv);
                     SCReturnInt(TM_ECODE_FAILED);
                 }
                 pftv->shared = pv->shared;
@@ -509,7 +510,7 @@ TmEcode PcapDirectoryDispatch(PcapFileDirectoryVars *ptv)
                     SCLogInfo("Directory %s no longer exists, stopping",
                               ptv->filename);
                     status = TM_ECODE_DONE;
-                } else {
+                } else if(directory_check != NULL) {
                     closedir(directory_check);
                 }
             }
index cbb7bcef36da0933c21dec9eb9277047f17058b9..1c408829ecaa5453b0fcd9265dd22536b98c69fb 100644 (file)
@@ -270,6 +270,7 @@ TmEcode ReceivePcapFileThreadInit(ThreadVars *tv, const void *initdata, void **d
         PcapFileDirectoryVars *pv = SCMalloc(sizeof(PcapFileDirectoryVars));
         if (unlikely(pv == NULL)) {
             SCLogError(SC_ERR_MEM_ALLOC, "Failed to allocate directory vars");
+            closedir(directory);
             CleanupPcapFileThreadVars(ptv);
             SCReturnInt(TM_ECODE_FAILED);
         }