]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: Make sure auth_request_log_info() doesn't crash when there are no passdbs
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Fri, 9 Sep 2016 15:18:32 +0000 (18:18 +0300)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Thu, 15 Sep 2016 05:58:38 +0000 (08:58 +0300)
auth_request_is_disabled_master_user() could have caused such crash.

src/auth/auth-request.c

index dfeaa83fdad4dc47be03cdf391e338a24e6e8d6e..b2e051beaee8ef3197c77ef86a0118374d94a3af 100644 (file)
@@ -2406,9 +2406,14 @@ void auth_request_log_info(struct auth_request *auth_request,
        if (auth_request->set->debug) {
                /* auth_debug=yes overrides auth_verbose settings */
        } else {
-               const char *db_auth_verbose = auth_request->userdb_lookup ?
-                       auth_request->userdb->set->auth_verbose :
-                       auth_request->passdb->set->auth_verbose;
+               const char *db_auth_verbose;
+
+               if (auth_request->userdb_lookup)
+                       db_auth_verbose = auth_request->userdb->set->auth_verbose;
+               else if (auth_request->passdb != NULL)
+                       db_auth_verbose = auth_request->passdb->set->auth_verbose;
+               else
+                       db_auth_verbose = "d";
                switch (db_auth_verbose[0]) {
                case 'y':
                        break;