From 5694b04f706e5e7a4cf1ce5f3d65d5e5368d5435 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 21 Sep 2021 17:51:15 +0300 Subject: [PATCH] lib-storage: mail_user_unref() - Add data stack frame The deinit code paths can sometimes eat up quite a lot of data stack. --- src/lib-storage/mail-user.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib-storage/mail-user.c b/src/lib-storage/mail-user.c index 2e36b02744..4c02a74a48 100644 --- a/src/lib-storage/mail-user.c +++ b/src/lib-storage/mail-user.c @@ -218,8 +218,10 @@ void mail_user_unref(struct mail_user **_user) /* call deinit() and deinit_pre() with refcount=1, otherwise we may assert-crash in mail_user_ref() that is called by some handlers. */ - user->v.deinit_pre(user); - user->v.deinit(user); + T_BEGIN { + user->v.deinit_pre(user); + user->v.deinit(user); + } T_END; event_unref(&user->event); i_assert(user->refcount == 1); pool_unref(&user->pool); -- 2.47.3