aclobj = acl_object_init_from_name(&backend->backend, name);
iter = acl_object_list_init(aclobj);
- while ((ret = acl_object_list_next(iter, &rights)) > 0) {
+ while (acl_object_list_next(iter, &rights)) {
if (acl_rights_has_nonowner_lookup_changes(&rights))
break;
}
- acl_object_list_deinit(&iter);
+ ret = acl_object_list_deinit(&iter);
if (acl_backend_vfile_object_get_mtime(aclobj, &acllist.mtime) < 0)
ret = -1;
struct acl_rights rights;
const char *name, *id_dup;
string_t *id;
- int ret, ret2 = 0;
+ int ret = 0;
if ((ns->flags & NAMESPACE_FLAG_NOACL) != 0 || ns->owner == NULL ||
ACL_LIST_CONTEXT(ns->list) == NULL)
id = t_str_new(128);
backend = acl_mailbox_list_get_backend(ns->list);
ctx = acl_backend_nonowner_lookups_iter_init(backend);
- while ((ret = acl_backend_nonowner_lookups_iter_next(ctx, &name)) > 0) {
+ while (acl_backend_nonowner_lookups_iter_next(ctx, &name)) {
aclobj = acl_object_init_from_name(backend, name);
iter = acl_object_list_init(aclobj);
- while ((ret = acl_object_list_next(iter, &rights)) > 0) {
+ while (acl_object_list_next(iter, &rights)) {
/* avoid pointless user -> user entries,
which some clients do */
if (acl_rights_has_nonowner_lookup_changes(&rights) &&
array_append(ids, &id_dup, 1);
}
}
- acl_object_list_deinit(&iter);
- if (ret < 0)
- ret2 = -1;
+ if (acl_object_list_deinit(&iter) < 0) ret = -1;
acl_object_deinit(&aclobj);
}
- acl_backend_nonowner_lookups_iter_deinit(&ctx);
- return ret < 0 || ret2 < 0 ? -1 : 0;
+ if (acl_backend_nonowner_lookups_iter_deinit(&ctx) < 0) ret = -1;
+ return ret;
}
static int
struct mail_namespace *ns = ctx->ctx.list->ns;
struct mailbox_list_iter_update_context update_ctx;
const char *name;
- int ret;
if ((ctx->ctx.flags & (MAILBOX_LIST_ITER_RAW_LIST |
MAILBOX_LIST_ITER_SELECT_SUBSCRIBED)) != 0)
update_ctx.tree_ctx = mailbox_tree_init(ctx->sep);
nonowner_list_ctx = acl_backend_nonowner_lookups_iter_init(backend);
- while ((ret = acl_backend_nonowner_lookups_iter_next(nonowner_list_ctx,
- &name)) > 0) {
+ while (acl_backend_nonowner_lookups_iter_next(nonowner_list_ctx,
+ &name)) {
T_BEGIN {
const char *vname =
mailbox_list_get_vname(ns->list, name);
mailbox_list_iter_update(&update_ctx, vname);
} T_END;
}
- acl_backend_nonowner_lookups_iter_deinit(&nonowner_list_ctx);
- if (ret == 0)
+ if (acl_backend_nonowner_lookups_iter_deinit(&nonowner_list_ctx) == 0)
ctx->lookup_boxes = update_ctx.tree_ctx;
else
mailbox_tree_deinit(&update_ctx.tree_ctx);
parent_aclobj = acl_object_init_from_parent(alist->rights.backend,
box->name);
iter = acl_object_list_init(parent_aclobj);
- while (acl_object_list_next(iter, &update.rights) > 0) {
+ while (acl_object_list_next(iter, &update.rights)) {
/* don't copy global ACL rights. */
if (!update.rights.global)
(void)acl_object_update(abox->aclobj, &update);
}
+ /* FIXME: Add error handling */
acl_object_list_deinit(&iter);
acl_object_deinit(&parent_aclobj);
}
{
struct acl_object_list_iter *iter;
struct acl_rights rights;
- int ret;
if (update->modify_mode != ACL_MODIFY_MODE_CLEAR &&
update->neg_modify_mode != ACL_MODIFY_MODE_CLEAR)
/* mixed clear/non-clear. see if the identifier exists anymore */
iter = acl_object_list_init(aclobj);
- while ((ret = acl_object_list_next(iter, &rights)) > 0) {
+ while (acl_object_list_next(iter, &rights)) {
if (rights.id_type == update->rights.id_type &&
null_strcmp(rights.identifier, update->rights.identifier) == 0)
break;
}
- acl_object_list_deinit(&iter);
- return ret == 0;
+ return acl_object_list_deinit(&iter) == 0;
}
int acl_mailbox_update_acl(struct mailbox_transaction_context *t,
bool ret = FALSE;
iter = acl_object_list_init(aclobj);
- while (acl_object_list_next(iter, &rights) > 0) {
+ while (acl_object_list_next(iter, &rights)) {
if (acl_rights_is_owner(backend, &rights)) {
if (rights.rights != NULL) {
ret = TRUE;
}
}
}
- acl_object_list_deinit(&iter);
+ (void)acl_object_list_deinit(&iter);
return ret;
}
tmp = t_str_new(128);
iter = acl_object_list_init(aclobj);
- while ((ret = acl_object_list_next(iter, &rights)) > 0) {
+ while (acl_object_list_next(iter, &rights)) {
if (acl_rights_is_owner(backend, &rights)) {
if (rights.id_type == ACL_ID_OWNER && convert_owner) {
rights.id_type = ACL_ID_USER;
imap_acl_write_right(dest, tmp, &rights, TRUE);
}
}
- acl_object_list_deinit(&iter);
+ ret = acl_object_list_deinit(&iter);
if (!seen_positive_owner && username != NULL && add_default) {
/* no positive owner rights returned, write default ACLs */