]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: Check for empty username after doing all the username changes.
authorTimo Sirainen <tss@iki.fi>
Tue, 14 Oct 2014 17:16:03 +0000 (10:16 -0700)
committerTimo Sirainen <tss@iki.fi>
Tue, 14 Oct 2014 17:16:03 +0000 (10:16 -0700)
src/auth/auth-request.c

index c841a06c9f70281e699833fabec76c44e93e1241..b9055518e7a93232e2d6a03e4b3f05272b29f4a4 100644 (file)
@@ -1190,6 +1190,11 @@ auth_request_fix_username(struct auth_request *request, const char *username,
                request->user = old_username;
        }
 
+       if (user[0] == '\0') {
+               /* Some PAM plugins go nuts with empty usernames */
+               *error_r = "Empty username";
+               return FALSE;
+       }
         return user;
 }
 
@@ -1206,11 +1211,6 @@ bool auth_request_set_username(struct auth_request *request,
                        /* it does, set it. */
                        login_username = t_strdup_until(username, p);
 
-                       if (*login_username == '\0') {
-                               *error_r = "Empty login username";
-                               return FALSE;
-                       }
-
                        /* username is the master user */
                        username = p + 1;
                }
@@ -1228,12 +1228,6 @@ bool auth_request_set_username(struct auth_request *request,
                username = request->user;
        }
 
-       if (*username == '\0') {
-               /* Some PAM plugins go nuts with empty usernames */
-               *error_r = "Empty username";
-               return FALSE;
-       }
-
         request->user = auth_request_fix_username(request, username, error_r);
        if (request->user == NULL)
                return FALSE;