{
struct acl_rights rights;
+ if (aiter->failed)
+ return NULL;
+
while (acl_object_list_next(aiter->acl_iter, &rights)) {
if (rights.global)
continue;
if (acl_object_list_deinit(&aiter->acl_iter) < 0) {
mail_storage_set_internal_error(aiter->iter.box->storage);
aiter->failed = TRUE;
- return NULL;
}
return NULL;
}
if (abox->module_ctx.super.attribute_iter_deinit(aiter->super) < 0)
ret = -1;
}
- if (aiter->acl_iter != NULL)
- acl_object_list_deinit(&aiter->acl_iter);
+ if (aiter->acl_iter != && acl_object_list_deinit(&aiter->acl_iter) < 0) {
+ mail_storage_set_internal_error(aiter->iter.box->storage);
+ ret = -1;
+ }
if (aiter->acl_name != NULL)
str_free(&aiter->acl_name);
i_free(aiter);