From: Timo Sirainen Date: Sun, 26 Oct 2008 13:52:47 +0000 (+0200) Subject: Don't assume original_username is always set. X-Git-Tag: 1.2.alpha4~144 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e68e87b789ac9c2cd2226e6ab42a0ed6d498cd6d;p=thirdparty%2Fdovecot%2Fcore.git Don't assume original_username is always set. --HG-- branch : HEAD --- diff --git a/src/auth/passdb.c b/src/auth/passdb.c index 12f841cd97..b477201410 100644 --- a/src/auth/passdb.c +++ b/src/auth/passdb.c @@ -52,7 +52,7 @@ bool passdb_get_credentials(struct auth_request *auth_request, const unsigned char **credentials_r, size_t *size_r) { const char *wanted_scheme = auth_request->credentials_scheme; - const char *plaintext; + const char *plaintext, *username; int ret; ret = password_decode(input, input_scheme, credentials_r, size_r); @@ -92,8 +92,9 @@ bool passdb_get_credentials(struct auth_request *auth_request, /* we can generate anything out of plaintext passwords */ plaintext = t_strndup(*credentials_r, *size_r); - if (!password_generate(plaintext, - auth_request->original_username, + username = auth_request->original_username != NULL ? + auth_request->original_username : auth_request->user; + if (!password_generate(plaintext, username, wanted_scheme, credentials_r, size_r)) { auth_request_log_error(auth_request, "password", "Requested unknown scheme %s", wanted_scheme);