]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: ldap - Make struct ldap_request_search::attributes const
authorMarco Bettini <marco.bettini@open-xchange.com>
Wed, 10 Jul 2024 08:22:09 +0000 (08:22 +0000)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 12 Feb 2025 10:34:13 +0000 (12:34 +0200)
src/auth/db-ldap.c
src/auth/db-ldap.h
src/auth/passdb-ldap.c

index 06459780ca0eb11e9988fdcac4b068772157e0d4..3801b3616b0e9bb64af63b26eec890f3ada15aee 100644 (file)
@@ -68,7 +68,7 @@ struct db_ldap_result_iterate_context {
        pool_t pool;
 
        struct ldap_request *ldap_request;
-       char **attr_next;
+       const char *const *attr_next;
 
        /* attribute name => value */
        HASH_TABLE(char *, struct db_ldap_value *) ldap_attrs;
@@ -219,7 +219,7 @@ static int db_ldap_request_search(struct ldap_connection *conn,
 
        ldap_search_ext(
                conn->ld, *srequest->base == '\0' ? NULL : srequest->base,
-               conn->set->parsed_scope, srequest->filter, srequest->attributes,
+               conn->set->parsed_scope, srequest->filter, (char **)srequest->attributes,
                0, NULL, NULL, 0, 0, &request->msgid);
        if (request->msgid == -1) {
                e_error(authdb_event(request->auth_request),
@@ -1052,7 +1052,7 @@ static void db_ldap_conn_close(struct ldap_connection *conn)
 }
 
 struct ldap_field_find_context {
-       ARRAY_TYPE(string) attr_names;
+       ARRAY_TYPE(const_string) attr_names;
        pool_t pool;
 };
 
@@ -1062,7 +1062,7 @@ db_ldap_field_find(const char *data, void *context,
                   const char **error_r ATTR_UNUSED)
 {
        struct ldap_field_find_context *ctx = context;
-       char *ldap_attr;
+       const char *ldap_attr;
 
        if (*data != '\0') {
                ldap_attr = p_strdup(ctx->pool, t_strcut(data, ':'));
@@ -1074,7 +1074,7 @@ db_ldap_field_find(const char *data, void *context,
 
 void db_ldap_get_attribute_names(pool_t pool,
                                 const ARRAY_TYPE(const_string) *attrlist,
-                                char ***attr_names_r,
+                                const char *const **attr_names_r,
                                 const char *skip_attr)
 {
        static struct var_expand_func_table var_funcs_table[] = {
@@ -1104,7 +1104,7 @@ void db_ldap_get_attribute_names(pool_t pool,
                (void)var_expand_with_funcs(tmp_str, value, NULL, var_funcs_table, &ctx, &error);
        }
        array_append_zero(&ctx.attr_names);
-       *attr_names_r = array_front_modifiable(&ctx.attr_names);
+       *attr_names_r = array_front(&ctx.attr_names);
 }
 
 #define IS_LDAP_ESCAPED_CHAR(c) \
index 46000f210b675715f679f6916e6b36019fffbcbc..7efdf7387d24aec9a6508f51a6caba8b405797c7 100644 (file)
@@ -85,7 +85,7 @@ struct ldap_request_search {
 
        const char *base;
        const char *filter;
-       char **attributes; /* points to (pass|user) module attributes */
+       const char *const *attributes; /* points to (pass|user) module attributes */
 
        struct db_ldap_result *result;
        ARRAY(struct ldap_request_named_result) named_results;
@@ -139,7 +139,7 @@ struct ldap_connection {
        /* Timestamp when we last received a reply */
        time_t last_reply_stamp;
 
-       char **pass_attr_names, **user_attr_names, **iterate_attr_names;
+       const char *const *pass_attr_names, *const *user_attr_names, *const *iterate_attr_names;
        bool delayed_connect;
 };
 
@@ -156,7 +156,7 @@ void db_ldap_request(struct ldap_connection *conn,
 
 void db_ldap_get_attribute_names(pool_t pool,
                                 const ARRAY_TYPE(const_string) *attrlist,
-                                char ***attr_names_r,
+                                const char *const **attr_names_r,
                                 const char *skip_attr) ATTR_NULL(4);
 
 struct ldap_connection *db_ldap_init(struct event *event);
index 1775b461699d19e8b6a9027e0b35bd8e0c31f558..e78cbf89506fb2b049a45199492c5af74d6b8ecf 100644 (file)
@@ -283,7 +283,7 @@ static void ldap_lookup_pass(struct auth_request *auth_request,
                (struct ldap_passdb_module *)_module;
        struct ldap_connection *conn = module->conn;
        struct ldap_request_search *srequest = &request->request.search;
-       const char **attr_names = (const char **)conn->pass_attr_names;
+       const char *const *attr_names = conn->pass_attr_names;
 
        request->require_password = require_password;
        srequest->request.type = LDAP_REQUEST_TYPE_SEARCH;