]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: Free io_switch_callbacks_free only after other atexit-callbacks
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Thu, 7 Sep 2017 09:44:46 +0000 (12:44 +0300)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Thu, 7 Sep 2017 09:44:46 +0000 (12:44 +0300)
Fixes a crash at deinit where io_loop_remove_switch_callback() was called in
lib_atexit() callback.

src/lib/ioloop.c

index 977774afadf1bdd8e003e5210dffb4efa8617c0d..f6bd7ab8454a00790d846c24ad244855668f507d 100644 (file)
@@ -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);
 }