changeset 18130:dd2eebe35a3a

auth: Don't crash if master user login is attempted without master=yes passdbs
author Timo Sirainen <tss@iki.fi>
date Wed, 17 Dec 2014 14:43:30 +0100
parents 0d870753d9ab
children 6078354e6238
files src/auth/auth-request.c
diffstat 1 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/auth/auth-request.c	Wed Dec 17 13:39:57 2014 +0100
+++ b/src/auth/auth-request.c	Wed Dec 17 14:43:30 2014 +0100
@@ -1249,6 +1249,8 @@
                                      const char *username,
                                      const char **error_r)
 {
+	struct auth_passdb *master_passdb;
+
         i_assert(*username != '\0');
 
 	if (strcmp(username, request->user) == 0) {
@@ -1258,7 +1260,12 @@
 	}
 
         /* lookup request->user from masterdb first */
-        request->passdb = auth_request_get_auth(request)->masterdbs;
+	master_passdb = auth_request_get_auth(request)->masterdbs;
+	if (master_passdb == NULL) {
+		*error_r = "Master user login attempted without master passdbs";
+		return FALSE;
+	}
+	request->passdb = master_passdb;
 
         request->requested_login_user =
                 auth_request_fix_username(request, username, error_r);