From c7f6992db44e9cd33b3b0d754833a1503ee9a53f Mon Sep 17 00:00:00 2001 From: Aki Tuomi Date: Wed, 7 Sep 2016 16:45:09 +0300 Subject: [PATCH] acl-plugin: Adjust to API changes --- src/plugins/acl/acl-backend-vfile-acllist.c | 4 ++-- src/plugins/acl/acl-lookup-dict.c | 14 ++++++-------- src/plugins/acl/acl-mailbox-list.c | 8 +++----- src/plugins/acl/acl-mailbox.c | 9 ++++----- src/plugins/imap-acl/imap-acl-plugin.c | 8 ++++---- 5 files changed, 19 insertions(+), 24 deletions(-) diff --git a/src/plugins/acl/acl-backend-vfile-acllist.c b/src/plugins/acl/acl-backend-vfile-acllist.c index 4224d58932..930b03ab24 100644 --- a/src/plugins/acl/acl-backend-vfile-acllist.c +++ b/src/plugins/acl/acl-backend-vfile-acllist.c @@ -184,11 +184,11 @@ acllist_append(struct acl_backend_vfile *backend, struct ostream *output, 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; diff --git a/src/plugins/acl/acl-lookup-dict.c b/src/plugins/acl/acl-lookup-dict.c index da735fecce..2714aa647e 100644 --- a/src/plugins/acl/acl-lookup-dict.c +++ b/src/plugins/acl/acl-lookup-dict.c @@ -111,7 +111,7 @@ static int acl_lookup_dict_rebuild_add_backend(struct mail_namespace *ns, 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) @@ -120,11 +120,11 @@ static int acl_lookup_dict_rebuild_add_backend(struct mail_namespace *ns, 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) && @@ -137,13 +137,11 @@ static int acl_lookup_dict_rebuild_add_backend(struct mail_namespace *ns, 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 diff --git a/src/plugins/acl/acl-mailbox-list.c b/src/plugins/acl/acl-mailbox-list.c index 5cd891adc9..a4ffab6173 100644 --- a/src/plugins/acl/acl-mailbox-list.c +++ b/src/plugins/acl/acl-mailbox-list.c @@ -90,7 +90,6 @@ acl_mailbox_try_list_fast(struct acl_mailbox_list_iterate_context *ctx) 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) @@ -120,17 +119,16 @@ acl_mailbox_try_list_fast(struct acl_mailbox_list_iterate_context *ctx) 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); diff --git a/src/plugins/acl/acl-mailbox.c b/src/plugins/acl/acl-mailbox.c index da6c05b0f6..a1fea87af8 100644 --- a/src/plugins/acl/acl-mailbox.c +++ b/src/plugins/acl/acl-mailbox.c @@ -102,11 +102,12 @@ static void acl_mailbox_copy_acls_from_parent(struct mailbox *box) 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); } @@ -622,7 +623,6 @@ acl_mailbox_update_removed_id(struct acl_object *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) @@ -633,13 +633,12 @@ acl_mailbox_update_removed_id(struct acl_object *aclobj, /* 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, diff --git a/src/plugins/imap-acl/imap-acl-plugin.c b/src/plugins/imap-acl/imap-acl-plugin.c index d99ce5cf66..103f8e2966 100644 --- a/src/plugins/imap-acl/imap-acl-plugin.c +++ b/src/plugins/imap-acl/imap-acl-plugin.c @@ -190,7 +190,7 @@ static bool have_positive_owner_rights(struct acl_backend *backend, 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; @@ -198,7 +198,7 @@ static bool have_positive_owner_rights(struct acl_backend *backend, } } } - acl_object_list_deinit(&iter); + (void)acl_object_list_deinit(&iter); return ret; } @@ -221,7 +221,7 @@ imap_acl_write_aclobj(string_t *dest, struct acl_backend *backend, 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; @@ -249,7 +249,7 @@ imap_acl_write_aclobj(string_t *dest, struct acl_backend *backend, 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 */