From: Timo Sirainen Date: Thu, 11 Sep 2025 12:25:25 +0000 (+0300) Subject: auth: Avoid assert-crash if returning ":default" passdb or userdb extra field X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4469ab0ef4d22bec35b72b5d0ae3a597036c247b;p=thirdparty%2Fdovecot%2Fcore.git auth: Avoid assert-crash if returning ":default" passdb or userdb extra field --- diff --git a/src/auth/auth-request.c b/src/auth/auth-request.c index aa249654be..d7dbd25926 100644 --- a/src/auth/auth-request.c +++ b/src/auth/auth-request.c @@ -1998,6 +1998,8 @@ void auth_request_set_field(struct auth_request *request, if (name_len > 8 && strcmp(name+name_len-8, ":default") == 0) { /* set this field only if it hasn't been set before */ name = t_strndup(name, name_len-8); + if (name[0] == '\0') + return; /* ":default" is invalid */ if (auth_fields_exists(request->fields.extra_fields, name)) return; } else if (name_len > 7 && strcmp(name+name_len-7, ":remove") == 0) { @@ -2228,6 +2230,8 @@ void auth_request_set_userdb_field(struct auth_request *request, name = t_strndup(name, name_len-8); if (auth_fields_exists(request->fields.userdb_reply, name)) return; + if (name[0] == '\0') + return; /* ":default" is invalid */ } else if (name_len > 7 && strcmp(name+name_len-7, ":remove") == 0) { /* remove this field entirely */ name = t_strndup(name, name_len-7);