dovecot-1.2: auth: original_username should never be NULL, remov...

dovecot at dovecot.org dovecot at dovecot.org
Sun Oct 26 16:30:54 EET 2008


details:   http://hg.dovecot.org/dovecot-1.2/rev/fc5683975951
changeset: 8347:fc5683975951
user:      Timo Sirainen <tss at iki.fi>
date:      Sun Oct 26 16:01:45 2008 +0200
description:
auth: original_username should never be NULL, removed all code that checks for it.

diffstat:

2 files changed, 8 insertions(+), 20 deletions(-)
src/auth/auth-request.c |   21 +++++----------------
src/auth/passdb.c       |    7 +++----

diffs (78 lines):

diff -r 9f66028a1089 -r fc5683975951 src/auth/auth-request.c
--- a/src/auth/auth-request.c	Sun Oct 26 15:53:12 2008 +0200
+++ b/src/auth/auth-request.c	Sun Oct 26 16:01:45 2008 +0200
@@ -126,10 +126,8 @@ void auth_request_export(struct auth_req
 		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_
 		}
 
 		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 
 {
 	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 
 		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 -r 9f66028a1089 -r fc5683975951 src/auth/passdb.c
--- a/src/auth/passdb.c	Sun Oct 26 15:53:12 2008 +0200
+++ b/src/auth/passdb.c	Sun Oct 26 16:01:45 2008 +0200
@@ -52,7 +52,7 @@ bool passdb_get_credentials(struct auth_
 			    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_
 
 		/* 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);


More information about the dovecot-cvs mailing list