]> dgit.raspbian.org Git - dovecot.git/commitdiff
[PATCH 6/6] auth: passdb_sql: connect before expanding query variables
authorAki Tuomi <aki.tuomi@open-xchange.com>
Fri, 29 May 2026 06:28:40 +0000 (09:28 +0300)
committerNoah Meyerhans <noahm@debian.org>
Wed, 16 Sep 2026 19:06:35 +0000 (15:06 -0400)
sql_lookup_pass() calls settings_get_params() with an SQL escape func that
requires a live connection. If the DB is disconnected, the error propagated
as "Failed to parse configuration" instead of a DB connectivity error.

Call sql_connect() first; fail with "Not connected to database" directly
if it returns -1.

Gbp-Pq: Name 0006-auth-passdb_sql-connect-before-expanding-query-varia.patch

src/auth/passdb-sql.c

index e9e51159eed0dad07fc3e95eba863d828426aa37..664f957cb21d21ad351e0d04b9a78bc19bc41488 100644 (file)
@@ -183,6 +183,14 @@ static void sql_lookup_pass(struct passdb_sql_request *sql_request)
        const struct passdb_sql_settings *set;
        const char *error;
 
+       if (sql_connect(module->db) < 0) {
+               e_error(authdb_event(sql_request->auth_request),
+                       "Not connected to database");
+               sql_request->callback.verify_plain(
+                       PASSDB_RESULT_INTERNAL_FAILURE,
+                       sql_request->auth_request);
+               return;
+       }
        const struct settings_get_params params = {
                .escape_func = passdb_sql_escape,
                .escape_context = module->db,