]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
acl: Fix array handling when removing ACL rights
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 3 Feb 2026 13:52:50 +0000 (15:52 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Fri, 6 Feb 2026 14:34:18 +0000 (14:34 +0000)
The initial array size was large enough that practically this mistake
couldn't have caused wrong behavior.

src/plugins/acl/acl-rights.c

index f04c96bba730a7d440f9b8d6dc1a29508dc292d4..654ee00aefd1602358a532914de62626a34cc3ad 100644 (file)
@@ -441,8 +441,8 @@ bool acl_right_names_modify(pool_t pool,
                                array_push_back(&rights, &old_rights[i]);
                }
                new_rights = empty_str_array;
-               modify_rights = array_count(&rights) == 0 ? NULL :
-                       array_front(&rights);
+               array_append_zero(&rights);
+               modify_rights = array_front(&rights);
                acl_right_names_merge(pool, &new_rights, modify_rights, TRUE);
                break;
        case ACL_MODIFY_MODE_ADD: