]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
threading setup: fix small mem leak on failure
authorVictor Julien <victor@inliniac.net>
Mon, 9 Dec 2013 20:09:36 +0000 (21:09 +0100)
committerVictor Julien <victor@inliniac.net>
Mon, 9 Dec 2013 20:09:36 +0000 (21:09 +0100)
[src/tm-threads.c:1058]: (error) Memory leak: slot

src/tm-threads.c

index fa2a8c987e98ae12b7ac641e7ea00244c91a748e..2293bc618d6cc7cde45c5f08ba25dc16cab4721b 100644 (file)
@@ -1012,6 +1012,11 @@ static inline TmSlot * _TmSlotSetFuncAppend(ThreadVars *tv, TmModule *tm, void *
     return slot;
 }
 
+void TmSlotFree(TmSlot *tms) {
+    SC_ATOMIC_DESTROY(slot->slot_data);
+    SCFree(tms);
+}
+
 /**
  * \brief Appends a new entry to the slots.
  *
@@ -1055,9 +1060,9 @@ void TmSlotSetFuncAppendDelayed(ThreadVars *tv, TmModule *tm, void *data,
 
     dslot = SCMalloc(sizeof(TmDummySlot));
     if (unlikely(dslot == NULL)) {
+        TmSlotFree(slot);
         return;
     }
-
     memset(dslot, 0, sizeof(*dslot));
 
     dslot->SlotFunc = SC_ATOMIC_GET(slot->SlotFunc);