From: Stephan Bosch Date: Tue, 26 Aug 2025 22:38:34 +0000 (+0200) Subject: lib-storage: list: mailbox-list-iter - Add list local variable to mailbox_list_iter_n... X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e4f5c7cfbe239a1b11cb1ed5955dc20a6da33d62;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: list: mailbox-list-iter - Add list local variable to mailbox_list_iter_next_call() --- diff --git a/src/lib-storage/list/mailbox-list-iter.c b/src/lib-storage/list/mailbox-list-iter.c index b7a7e0be8b..6cd62d55f5 100644 --- a/src/lib-storage/list/mailbox-list-iter.c +++ b/src/lib-storage/list/mailbox-list-iter.c @@ -1222,23 +1222,24 @@ mailbox_list_iter_next_call(struct mailbox_list_iterate_context *ctx) if ((info = mailbox_list_finish_subscriptions(ctx)) == NULL) return NULL; - ctx->list->ns->flags |= NAMESPACE_FLAG_USABLE; + /* NOTE: ctx->list may be fake - don't use it directly */ + struct mailbox_list *list = info->ns->list; + + list->ns->flags |= NAMESPACE_FLAG_USABLE; if ((ctx->flags & MAILBOX_LIST_ITER_RETURN_SPECIALUSE) != 0) { - /* NOTE: ctx->list is fake - don't use it directly */ const char *error; - ret = mailbox_name_try_get_settings(info->ns->list, info->vname, + ret = mailbox_name_try_get_settings(list, info->vname, &set, &error); if (ret == 0) { struct event *event = mail_storage_mailbox_create_event( - info->ns->list->event, info->ns->list, - info->vname); + list->event, list, info->vname); ret = settings_get(event, &mailbox_setting_parser_info, 0, &set, &error); event_unref(&event); } if (ret < 0) { - mailbox_list_set_critical(info->ns->list, "%s", error); + mailbox_list_set_critical(list, "%s", error); ctx->failed = TRUE; return NULL; }