From 4503ffeee92591d6d832083fc20c2833c47b5043 Mon Sep 17 00:00:00 2001 From: Tom DeCanio Date: Thu, 9 Oct 2014 12:52:30 -0700 Subject: [PATCH] mime-decode: fix minor memory leak if Mime parser initialization were to fail. --- src/mime-decode.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/mime-decode.c b/src/mime-decode.c index a1f8b226ca..6d34d0f6f8 100644 --- a/src/mime-decode.c +++ b/src/mime-decode.c @@ -2349,6 +2349,7 @@ MimeDecParseState * MimeDecInitParser(void *data, state->stack = SCMalloc(sizeof(MimeDecStack)); if (unlikely(state->stack == NULL)) { SCLogError(SC_ERR_MEM_ALLOC, "memory allocation failed"); + SCFree(state); return NULL; } memset(state->stack, 0x00, sizeof(MimeDecStack)); @@ -2356,6 +2357,8 @@ MimeDecParseState * MimeDecInitParser(void *data, mimeMsg = SCMalloc(sizeof(MimeDecEntity)); if (unlikely(mimeMsg == NULL)) { SCLogError(SC_ERR_MEM_ALLOC, "memory allocation failed"); + SCFree(state->stack); + SCFree(state); return NULL; } memset(mimeMsg, 0x00, sizeof(MimeDecEntity)); @@ -2366,6 +2369,8 @@ MimeDecParseState * MimeDecInitParser(void *data, PushStack(state->stack); if (state->stack->top == NULL) { SCLogError(SC_ERR_MEM_ALLOC, "memory allocation failed"); + SCFree(state->stack); + SCFree(state); return NULL; } state->stack->top->data = mimeMsg;