From: Timo Sirainen Date: Tue, 21 Sep 2021 14:51:15 +0000 (+0300) Subject: lib-storage: mail_user_unref() - Add data stack frame X-Git-Tag: 2.3.17~79 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5694b04f706e5e7a4cf1ce5f3d65d5e5368d5435;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: mail_user_unref() - Add data stack frame The deinit code paths can sometimes eat up quite a lot of data stack. --- 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);