From: Aki Tuomi Date: Fri, 29 May 2026 06:28:40 +0000 (+0300) Subject: [PATCH 6/6] auth: passdb_sql: connect before expanding query variables X-Git-Tag: archive/raspbian/1%2.4.1+dfsg1-6+rpi1+deb13u7^2~76 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=2f65c772dc40f1dbd7467a26a5ab45b7f8f7c629;p=dovecot.git [PATCH 6/6] auth: passdb_sql: connect before expanding query variables 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 --- diff --git a/src/auth/passdb-sql.c b/src/auth/passdb-sql.c index e9e5115..664f957 100644 --- a/src/auth/passdb-sql.c +++ b/src/auth/passdb-sql.c @@ -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,