From 43af715caaf414df54394d21e699d0f717333d6d Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 18 Jul 2020 10:50:09 +0530 Subject: [PATCH] free peer message queue at shutdown --- kitty/child-monitor.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/kitty/child-monitor.c b/kitty/child-monitor.c index b2cf19b83..f9d2515cf 100644 --- a/kitty/child-monitor.c +++ b/kitty/child-monitor.c @@ -155,6 +155,11 @@ new(PyTypeObject *type, PyObject *args, PyObject UNUSED *kwds) { static void dealloc(ChildMonitor* self) { + if (self->messages) { + for (size_t i = 0; i < self->messages_count; i++) free(self->messages[i].data); + free(self->messages); self->messages = NULL; + self->messages_count = 0; self->messages_capacity = 0; + } pthread_mutex_destroy(&children_lock); pthread_mutex_destroy(&talk_lock); Py_CLEAR(self->dump_callback); @@ -359,6 +364,7 @@ parse_input(ChildMonitor *self) { memcpy(msgs, self->messages, sizeof(Message) * self->messages_count); msgs_count = self->messages_count; } + memset(self->messages, 0, sizeof(Message) * self->messages_capacity); self->messages_count = 0; } talk_mutex(unlock);