]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: passwd-file - Avoid assert-crash when using "=value" or "userdb_=value" extra...
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Thu, 11 Sep 2025 12:29:46 +0000 (15:29 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Sat, 20 Sep 2025 07:03:34 +0000 (07:03 +0000)
src/auth/passdb-passwd-file.c
src/auth/userdb-passwd-file.c

index 14daf7e51b4e3738058aba876e2f8dcbc9b66b3c..dcac36d0d6dc83a6bad61eeafd6b67f9af51c5b3 100644 (file)
@@ -49,6 +49,8 @@ passwd_file_add_extra_fields(struct auth_request *request,
                        key = fields[i];
                        value = "";
                }
+               if (key[0] == '\0')
+                       continue;
                if (request->passdb->set->fields_import_all)
                        auth_request_set_field(request, key, value, NULL);
                auth_fields_add(pwd_fields, key, value, 0);
index 1f91b209a493f32011979a48b3df46cadfb02920..35bc952a6b16efb084d3427715e3996c41f5d2cf 100644 (file)
@@ -59,9 +59,10 @@ passwd_file_add_extra_fields(struct auth_request *request,
                        value = "";
                }
                if (request->userdb->set->fields_import_all &&
-                   str_begins(key, "userdb_", &key))
+                   str_begins(key, "userdb_", &key) && key[0] != '\0')
                        auth_request_set_userdb_field(request, key, value);
-               auth_fields_add(pwd_fields, key, value, 0);
+               if (key[0] != '\0')
+                       auth_fields_add(pwd_fields, key, value, 0);
        }
        if (ret == 0 && auth_request_set_userdb_fields_ex(request, pwd_fields,
                                                          db_passwd_file_var_expand_fn) < 0)