From: Timo Sirainen Date: Wed, 10 Aug 2016 14:14:28 +0000 (+0300) Subject: auth: When setting noauthenticate=yes, also set nopassword=yes X-Git-Tag: 2.3.0.rc1~3202 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=91272432ce97ebe9dbffa40c7dece4451bfcb65c;p=thirdparty%2Fdovecot%2Fcore.git auth: When setting noauthenticate=yes, also set nopassword=yes There are various places which check only "nopassword", but not "noauthenticate". --- diff --git a/src/auth/auth-request.c b/src/auth/auth-request.c index c7019402c6..a5c5178d5a 100644 --- a/src/auth/auth-request.c +++ b/src/auth/auth-request.c @@ -1746,11 +1746,17 @@ void auth_request_set_field(struct auth_request *request, return; } auth_request_set_userdb_field(request, name + 7, value); + } else if (strcmp(name, "noauthenticate") == 0) { + /* add "nopassword" also so that passdbs won't try to verify + the password. */ + auth_fields_add(request->extra_fields, name, value, 0); + auth_fields_add(request->extra_fields, "nopassword", NULL, 0); } else if (strcmp(name, "nopassword") == 0) { /* NULL password - anything goes */ const char *password = request->passdb_password; - if (password != NULL) { + if (password != NULL && + !auth_fields_exists(request->extra_fields, "noauthenticate")) { (void)password_get_scheme(&password); if (*password != '\0') { auth_request_log_error(request, AUTH_SUBSYS_DB,