From f99b59ae9638f152ac701061ba3d9468653564b5 Mon Sep 17 00:00:00 2001 From: John Sully Date: Sun, 16 Feb 2020 03:33:45 -0500 Subject: [PATCH] aeDeleteEventLoop use after free and leak fixes Former-commit-id: 77820e5d50e0426570285a2c740c47b05a7c6c2f --- src/ae.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/ae.cpp b/src/ae.cpp index d84a5b0d6..075e73ebd 100644 --- a/src/ae.cpp +++ b/src/ae.cpp @@ -402,10 +402,18 @@ extern "C" void aeDeleteEventLoop(aeEventLoop *eventLoop) { aeApiFree(eventLoop); zfree(eventLoop->events); zfree(eventLoop->fired); - zfree(eventLoop); fastlock_free(&eventLoop->flock); close(eventLoop->fdCmdRead); close(eventLoop->fdCmdWrite); + + auto *te = eventLoop->timeEventHead; + while (te) + { + auto *teNext = te->next; + zfree(te); + te = teNext; + } + zfree(eventLoop); } extern "C" void aeStop(aeEventLoop *eventLoop) {