From: Timo Sirainen Date: Tue, 12 Jun 2018 13:07:25 +0000 (+0300) Subject: lib-storage: Fix memory leak when mail_storage_service_next() is called multiple... X-Git-Tag: 2.3.2.1~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bc10a45e9e01249a4d0975e2ed8aa2663b128513;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Fix memory leak when mail_storage_service_next() is called multiple times dsync uses it twice for the same mail_storage_service_user. --- diff --git a/src/lib-storage/mail-storage-service.c b/src/lib-storage/mail-storage-service.c index ea00ede77e..ee0bcf3d87 100644 --- a/src/lib-storage/mail-storage-service.c +++ b/src/lib-storage/mail-storage-service.c @@ -1516,12 +1516,13 @@ mail_storage_service_next_real(struct mail_storage_service_ctx *ctx, /* create ioloop context regardless of logging. it's also used by stats plugin. */ - user->ioloop_ctx = io_loop_context_new(current_ioloop); - io_loop_context_add_callbacks(user->ioloop_ctx, + if (user->ioloop_ctx == NULL) { + user->ioloop_ctx = io_loop_context_new(current_ioloop); + io_loop_context_add_callbacks(user->ioloop_ctx, mail_storage_service_io_activate_user_cb, mail_storage_service_io_deactivate_user_cb, user); - + } if ((user->flags & MAIL_STORAGE_SERVICE_FLAG_NO_LOG_INIT) == 0) mail_storage_service_init_log(ctx, user, &priv);