From: Timo Sirainen Date: Thu, 7 Sep 2017 09:44:46 +0000 (+0300) Subject: lib: Free io_switch_callbacks_free only after other atexit-callbacks X-Git-Tag: 2.3.0.rc1~1075 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bcd91686ef26fe36f7e0f69366b822879f012d9f;p=thirdparty%2Fdovecot%2Fcore.git lib: Free io_switch_callbacks_free only after other atexit-callbacks Fixes a crash at deinit where io_loop_remove_switch_callback() was called in lib_atexit() callback. --- diff --git a/src/lib/ioloop.c b/src/lib/ioloop.c index 977774afad..f6bd7ab845 100644 --- a/src/lib/ioloop.c +++ b/src/lib/ioloop.c @@ -839,7 +839,7 @@ void io_loop_add_switch_callback(io_switch_callback_t *callback) { if (!array_is_created(&io_switch_callbacks)) { i_array_init(&io_switch_callbacks, 4); - lib_atexit(io_switch_callbacks_free); + lib_atexit_priority(io_switch_callbacks_free, LIB_ATEXIT_PRIORITY_LOW); } array_append(&io_switch_callbacks, &callback, 1); }