From: Victor Julien Date: Mon, 9 Dec 2013 20:09:36 +0000 (+0100) Subject: threading setup: fix small mem leak on failure X-Git-Tag: suricata-2.0beta2~46 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=86aad660a247d1475729bf22e44fd56a328709a4;p=thirdparty%2Fsuricata.git threading setup: fix small mem leak on failure [src/tm-threads.c:1058]: (error) Memory leak: slot --- diff --git a/src/tm-threads.c b/src/tm-threads.c index fa2a8c987e..2293bc618d 100644 --- a/src/tm-threads.c +++ b/src/tm-threads.c @@ -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);