From 86aad660a247d1475729bf22e44fd56a328709a4 Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Mon, 9 Dec 2013 21:09:36 +0100 Subject: [PATCH] threading setup: fix small mem leak on failure [src/tm-threads.c:1058]: (error) Memory leak: slot --- src/tm-threads.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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);