From: Aki Tuomi Date: Thu, 17 Feb 2022 08:06:40 +0000 (+0200) Subject: indexer: Free user after anvil disconnect X-Git-Tag: 2.4.0~4392 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=902029cfd725fb22a681f8cc61f8cd8abda542e4;p=thirdparty%2Fdovecot%2Fcore.git indexer: Free user after anvil disconnect Fixes invalid use after free. Broken by f9627ea62b5cb471d9adde0cc188ee8dea93c172 --- diff --git a/src/indexer/master-connection.c b/src/indexer/master-connection.c index f4b1cf5e08..eeb7a04e2d 100644 --- a/src/indexer/master-connection.c +++ b/src/indexer/master-connection.c @@ -289,13 +289,14 @@ master_connection_cmd_index(struct master_connection *conn, /* refresh proctitle before a potentially long-running user unref */ indexer_worker_refresh_proctitle(user->username, "(deinit)", 0, 0); - mail_user_deinit(&user); - mail_storage_service_user_unref(&service_user); if (anvil_sent) { master_service_anvil_disconnect(master_service, &anvil_session, anvil_conn_guid); } + + mail_user_deinit(&user); + mail_storage_service_user_unref(&service_user); indexer_worker_refresh_proctitle(NULL, NULL, 0, 0); return ret; }