]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
output-json-email: fix memleak in error path
authorEric Leblond <eric@regit.org>
Fri, 18 Mar 2016 08:28:58 +0000 (09:28 +0100)
committerVictor Julien <victor@inliniac.net>
Mon, 21 Mar 2016 15:01:27 +0000 (16:01 +0100)
In JsonEmailLogJsonData function, an invalid state was leading to
early exit without a proper freeing of resources.

This should fix:

Indirect leak of 72 byte(s) in 1 object(s) allocated from:
    #0 0x4c264b in malloc (/home/victor/qa/buildbot/donkey/z600fuzz/Private/src/.libs/lt-suricata+0x4c264b)
    #1 0x7fb09c1e886a in json_object (/usr/lib/x86_64-linux-gnu/libjansson.so.4+0x686a)
    #2 0xd6a272 in JsonEmailLogJson /home/victor/qa/buildbot/donkey/z600fuzz/Private/src/output-json-email-common.c:370:19
    #3 0xd956b9 in JsonSmtpLogger /home/victor/qa/buildbot/donkey/z600fuzz/Private/src/output-json-smtp.c:103:9
    #4 0xdcedac in OutputTxLog /home/victor/qa/buildbot/donkey/z600fuzz/Private/src/output-tx.c:165:17
    #5 0xff6669 in TmThreadsSlotVarRun /home/victor/qa/buildbot/donkey/z600fuzz/Private/src/tm-threads.c:132:17
    #6 0xffecc1 in TmThreadsSlotVar /home/victor/qa/buildbot/donkey/z600fuzz/Private/src/tm-threads.c:474:17
    #7 0x7fb09bfcc181 in start_thread /build/eglibc-3GlaMS/eglibc-2.19/nptl/pthread_create.c:312

src/output-json-email-common.c

index b2750490d098dbd997af63c4e9619f0bfda7d483..7ab9e727b02b73ba3dadb290f562d1891e11d930 100644 (file)
@@ -263,6 +263,7 @@ json_t *JsonEmailLogJsonData(const Flow *f, void *state, void *vtx, uint64_t tx_
     }
     if ((mime_state != NULL)) {
         if (entity == NULL) {
+            json_decref(sjs);
             SCReturnPtr(NULL, "json_t");
         }