From: Timo Sirainen Date: Sun, 26 Oct 2008 14:01:45 +0000 (+0200) Subject: auth: original_username should never be NULL, removed all code that checks for it. X-Git-Tag: 1.2.alpha4~142 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7d97b8b0e47ad995915373b5c2a57f622a393352;p=thirdparty%2Fdovecot%2Fcore.git auth: original_username should never be NULL, removed all code that checks for it. --HG-- branch : HEAD --- diff --git a/src/auth/auth-request.c b/src/auth/auth-request.c index 16c19471de..8cba04d20f 100644 --- a/src/auth/auth-request.c +++ b/src/auth/auth-request.c @@ -126,10 +126,8 @@ void auth_request_export(struct auth_request *request, auth_stream_reply_add(reply, "master_user", request->master_user); } - if (request->original_username != NULL) { - auth_stream_reply_add(reply, "original_username", - request->original_username); - } + auth_stream_reply_add(reply, "original_username", + request->original_username); if (request->local_ip.family != 0) { auth_stream_reply_add(reply, "lip", @@ -1013,12 +1011,6 @@ void auth_request_set_field(struct auth_request *request, } if (strcmp(request->user, value) != 0) { - /* remember the original username for cache */ - if (request->original_username == NULL) { - request->original_username = - p_strdup(request->pool, request->user); - } - auth_request_log_debug(request, "auth", "username changed %s -> %s", request->user, value); @@ -1270,7 +1262,6 @@ int auth_request_password_verify(struct auth_request *request, { const unsigned char *raw_password; size_t raw_password_size; - const char *user; int ret; if (request->skip_password_check) { @@ -1303,13 +1294,11 @@ int auth_request_password_verify(struct auth_request *request, return -1; } - /* If original_username is set, use it. It may be important for some + /* Use original_username since it may be important for some password schemes (eg. digest-md5). Otherwise the username is used only for logging purposes. */ - user = request->original_username != NULL ? - request->original_username : request->user; - ret = password_verify(plain_password, user, scheme, - raw_password, raw_password_size); + ret = password_verify(plain_password, request->original_username, + scheme, raw_password, raw_password_size); i_assert(ret >= 0); if (ret == 0) { auth_request_log_info(request, subsystem, diff --git a/src/auth/passdb.c b/src/auth/passdb.c index b477201410..12f841cd97 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, *username; + const char *plaintext; int ret; ret = password_decode(input, input_scheme, credentials_r, size_r); @@ -92,9 +92,8 @@ bool passdb_get_credentials(struct auth_request *auth_request, /* we can generate anything out of plaintext passwords */ plaintext = t_strndup(*credentials_r, *size_r); - username = auth_request->original_username != NULL ? - auth_request->original_username : auth_request->user; - if (!password_generate(plaintext, username, + if (!password_generate(plaintext, + auth_request->original_username, wanted_scheme, credentials_r, size_r)) { auth_request_log_error(auth_request, "password", "Requested unknown scheme %s", wanted_scheme);