From: Timo Sirainen Date: Mon, 9 Sep 2019 09:21:39 +0000 (+0300) Subject: auth: Add and use auth_request_password_missing() where possible X-Git-Tag: 2.3.9~162 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7375f799cabf68919c79fb0a51111a4f5c793c68;p=thirdparty%2Fdovecot%2Fcore.git auth: Add and use auth_request_password_missing() where possible --- diff --git a/src/auth/auth-request.c b/src/auth/auth-request.c index 8dc33ae9cd..37939fc87f 100644 --- a/src/auth/auth-request.c +++ b/src/auth/auth-request.c @@ -2831,6 +2831,13 @@ int auth_request_password_verify_log(struct auth_request *request, return ret; } +enum passdb_result auth_request_password_missing(struct auth_request *request) +{ + e_info(authdb_event(request), + "No password returned (and no nopassword)"); + return PASSDB_RESULT_PASSWORD_MISMATCH; +} + void auth_request_get_log_prefix(string_t *str, struct auth_request *auth_request, const char *subsystem) { diff --git a/src/auth/auth-request.h b/src/auth/auth-request.h index 453efba809..be09c4d9a7 100644 --- a/src/auth/auth-request.h +++ b/src/auth/auth-request.h @@ -259,6 +259,7 @@ int auth_request_password_verify_log(struct auth_request *request, const char *crypted_password, const char *scheme, const char *subsystem, bool log_password_mismatch); +enum passdb_result auth_request_password_missing(struct auth_request *request); void auth_request_get_log_prefix(string_t *str, struct auth_request *auth_request, const char *subsystem); diff --git a/src/auth/passdb-dict.c b/src/auth/passdb-dict.c index 0e8c0a8953..9159380822 100644 --- a/src/auth/passdb-dict.c +++ b/src/auth/passdb-dict.c @@ -69,9 +69,7 @@ passdb_dict_lookup_key(struct auth_request *auth_request, if (auth_request->passdb_password == NULL && !auth_fields_exists(auth_request->extra_fields, "nopassword")) { - e_info(authdb_event(auth_request), - "No password returned (and no nopassword)"); - return PASSDB_RESULT_PASSWORD_MISMATCH; + return auth_request_password_missing(auth_request); } else { return PASSDB_RESULT_OK; } diff --git a/src/auth/passdb-ldap.c b/src/auth/passdb-ldap.c index f73cbbdbed..428da3d5e5 100644 --- a/src/auth/passdb-ldap.c +++ b/src/auth/passdb-ldap.c @@ -84,9 +84,7 @@ ldap_lookup_finish(struct auth_request *auth_request, } else if (auth_request->passdb_password == NULL && ldap_request->require_password && !auth_fields_exists(auth_request->extra_fields, "nopassword")) { - e_info(authdb_event(auth_request), - "No password returned (and no nopassword)"); - passdb_result = PASSDB_RESULT_PASSWORD_MISMATCH; + passdb_result = auth_request_password_missing(auth_request); } else { /* passdb_password may change on the way, so we'll need to strdup. */ diff --git a/src/auth/passdb-lua.c b/src/auth/passdb-lua.c index 672d431924..92c2e958f6 100644 --- a/src/auth/passdb-lua.c +++ b/src/auth/passdb-lua.c @@ -52,9 +52,7 @@ passdb_lua_lookup(struct auth_request *request, /* skip next bit */ } else if (!auth_fields_exists(request->extra_fields, "nopassword")) { if (*password_r == NULL || **password_r == '\0') { - e_info(authdb_event(request), - "No password returned (and no nopassword)"); - result = PASSDB_RESULT_PASSWORD_MISMATCH; + result = auth_request_password_missing(request); } else { if (*scheme_r == NULL) *scheme_r = request->passdb->passdb->default_pass_scheme; diff --git a/src/auth/passdb-sql.c b/src/auth/passdb-sql.c index 0c0a2c5795..666c7392cc 100644 --- a/src/auth/passdb-sql.c +++ b/src/auth/passdb-sql.c @@ -100,9 +100,7 @@ static void sql_query_callback(struct sql_result *result, "Password query returned multiple matches"); } else if (auth_request->passdb_password == NULL && !auth_fields_exists(auth_request->extra_fields, "nopassword")) { - e_info(authdb_event(auth_request), - "Empty password returned without nopassword"); - passdb_result = PASSDB_RESULT_PASSWORD_MISMATCH; + passdb_result = auth_request_password_missing(auth_request); } else { /* passdb_password may change on the way, so we'll need to strdup. */ diff --git a/src/auth/passdb-static.c b/src/auth/passdb-static.c index d55519e330..c64d1e165c 100644 --- a/src/auth/passdb-static.c +++ b/src/auth/passdb-static.c @@ -40,9 +40,7 @@ static_save_fields(struct auth_request *request, const char **password_r, } else if (auth_fields_exists(request->extra_fields, "nopassword")) { *password_r = ""; } else { - e_info(authdb_event(request), - "No password returned (and no nopassword)"); - return PASSDB_RESULT_PASSWORD_MISMATCH; + return auth_request_password_missing(request); } *scheme_r = password_get_scheme(password_r);