From 4bf9beb484ecc83330a99c76509dba47733ebcbf 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: 2fd93c5789a4e81455d51b2a4786f708e8d6a2d7 --- src/ae.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/ae.cpp b/src/ae.cpp index b92cd4a67..16ac3ebba 100644 --- a/src/ae.cpp +++ b/src/ae.cpp @@ -390,10 +390,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) {