On Mon, Oct 05, 2015 at 10:05:14PM +0000, Viktor Dukhovni wrote:
Can you take this to the Cyrus IMAP list, or the Debian/Ubuntu
maintainers?
Proposed patch below. Other plugins require similar treatment.
As for Postfix, perhaps "msg_verbose" should not alone be sufficient
to trigger password logging? We could require "msg_verbose" *and*
an smtpd.conf with log_level set high enough, via code along the
lines suggested by Alexey.
--
Viktor.
diff --git a/plugins/sql.c b/plugins/sql.c
index 3b89383..7992b05 100644
--- a/plugins/sql.c
+++ b/plugins/sql.c
@@ -73,3 +73,3 @@ static void *_mysql_open(char *host, char *port, int usessl,
if (!(mysql = mysql_init(NULL))) {
- utils->log(NULL, SASL_LOG_ERR,
+ utils->log(utils->conn, SASL_LOG_ERR,
"sql plugin: could not execute mysql_init()");
@@ -110,3 +110,3 @@ static int _mysql_exec(void *conn, const char *cmd, char
*value, size_t size,
if(mysql_errno(conn)) {
- utils->log(NULL, SASL_LOG_ERR, "sql query failed: %s",
+ utils->log(utils->conn, SASL_LOG_ERR, "sql query failed: %s",
mysql_error(conn));
@@ -125,3 +125,3 @@ static int _mysql_exec(void *conn, const char *cmd, char
*value, size_t size,
/* umm nothing found */
- utils->log(NULL, SASL_LOG_NOTE, "sql plugin: no result found");
+ utils->log(utils->conn, SASL_LOG_NOTE, "sql plugin: no result found");
return -1;
@@ -134,3 +134,3 @@ static int _mysql_exec(void *conn, const char *cmd, char
*value, size_t size,
mysql_free_result(result);
- utils->log(NULL, SASL_LOG_NOTE, "sql plugin: no result found");
+ utils->log(utils->conn, SASL_LOG_NOTE, "sql plugin: no result found");
return -1;
@@ -138,3 +138,3 @@ static int _mysql_exec(void *conn, const char *cmd, char
*value, size_t size,
if (row_count > 1) {
- utils->log(NULL, SASL_LOG_WARN,
+ utils->log(utils->conn, SASL_LOG_WARN,
"sql plugin: found duplicate row for query %s", cmd);
@@ -147,3 +147,3 @@ static int _mysql_exec(void *conn, const char *cmd, char
*value, size_t size,
/* umm nothing found */
- utils->log(NULL, SASL_LOG_NOTE, "sql plugin: no result found");
+ utils->log(utils->conn, SASL_LOG_NOTE, "sql plugin: no result found");
mysql_free_result(result);
@@ -259,3 +259,4 @@ static void *_pgsql_open(char *host, char *port, int usessl,
if ((PQstatus(conn) != CONNECTION_OK)) {
- utils->log(NULL, SASL_LOG_ERR, "sql plugin: %s", PQerrorMessage(conn));
+ utils->log(utils->conn, SASL_LOG_ERR, "sql plugin: %s",
+ PQerrorMessage(conn));
return NULL;
@@ -290,3 +291,3 @@ static int _pgsql_exec(void *conn, const char *cmd, char
*value, size_t size,
/* error */
- utils->log(NULL, SASL_LOG_DEBUG, "sql plugin: %s ",
+ utils->log(utils->conn, SASL_LOG_DEBUG, "sql plugin: %s ",
PQresStatus(status));
@@ -300,3 +301,3 @@ static int _pgsql_exec(void *conn, const char *cmd, char
*value, size_t size,
/* umm nothing found */
- utils->log(NULL, SASL_LOG_NOTE, "sql plugin: no result found");
+ utils->log(utils->conn, SASL_LOG_NOTE, "sql plugin: no result found");
PQclear(result);
@@ -305,3 +306,3 @@ static int _pgsql_exec(void *conn, const char *cmd, char
*value, size_t size,
if (row_count > 1) {
- utils->log(NULL, SASL_LOG_WARN,
+ utils->log(utils->conn, SASL_LOG_WARN,
"sql plugin: found duplicate row for query %s", cmd);
@@ -359,3 +360,3 @@ static void *_sqlite_open(char *host
__attribute__((unused)),
if (db == NULL) {
- utils->log(NULL, SASL_LOG_ERR, "sql plugin: %s", zErrMsg);
+ utils->log(utils->conn, SASL_LOG_ERR, "sql plugin: %s", zErrMsg);
sqlite_freemem (zErrMsg);
@@ -366,3 +367,3 @@ static void *_sqlite_open(char *host
__attribute__((unused)),
if (rc != SQLITE_OK) {
- utils->log(NULL, SASL_LOG_ERR, "sql plugin: %s", zErrMsg);
+ utils->log(utils->conn, SASL_LOG_ERR, "sql plugin: %s", zErrMsg);
sqlite_freemem (zErrMsg);
@@ -416,3 +417,3 @@ static int _sqlite_exec(void *db, const char *cmd, char
*value, size_t size,
if (rc != SQLITE_OK && rc != SQLITE_ABORT) {
- utils->log(NULL, SASL_LOG_DEBUG, "sql plugin: %s ", zErrMsg);
+ utils->log(utils->conn, SASL_LOG_DEBUG, "sql plugin: %s ", zErrMsg);
sqlite_freemem (zErrMsg);
@@ -428,3 +429,3 @@ static int _sqlite_exec(void *db, const char *cmd, char
*value, size_t size,
/* umm nothing found */
- utils->log(NULL, SASL_LOG_NOTE, "sql plugin: no result found");
+ utils->log(utils->conn, SASL_LOG_NOTE, "sql plugin: no result found");
return -1;
@@ -487,5 +488,6 @@ static void *_sqlite3_open(char *host
__attribute__((unused)),
if (db)
- utils->log(NULL, SASL_LOG_ERR, "sql plugin: %s",
sqlite3_errmsg(db));
+ utils->log(utils->conn, SASL_LOG_ERR, "sql plugin: %s",
+ sqlite3_errmsg(db));
else
- utils->log(NULL, SASL_LOG_ERR, "sql plugin: %d", rc);
+ utils->log(utils->conn, SASL_LOG_ERR, "sql plugin: %d", rc);
sqlite3_close(db);
@@ -497,6 +499,7 @@ static void *_sqlite3_open(char *host
__attribute__((unused)),
if (zErrMsg) {
- utils->log(NULL, SASL_LOG_ERR, "sql plugin: %s", zErrMsg);
+ utils->log(utils->conn, SASL_LOG_ERR, "sql plugin: %s",
+ zErrMsg);
sqlite3_free(zErrMsg);
} else
- utils->log(NULL, SASL_LOG_DEBUG, "sql plugin: %d", rc);
+ utils->log(utils->conn, SASL_LOG_DEBUG, "sql plugin: %d", rc);
sqlite3_close(db);
@@ -554,6 +557,6 @@ static int _sqlite3_exec(void *db,
if (zErrMsg) {
- utils->log(NULL, SASL_LOG_DEBUG, "sql plugin: %s", zErrMsg);
+ utils->log(utils->conn, SASL_LOG_DEBUG, "sql plugin: %s", zErrMsg);
sqlite3_free(zErrMsg);
} else {
- utils->log(NULL, SASL_LOG_DEBUG, "sql plugin: %d", rc);
+ utils->log(utils->conn, SASL_LOG_DEBUG, "sql plugin: %d", rc);
}
@@ -569,3 +572,3 @@ static int _sqlite3_exec(void *db,
/* umm nothing found */
- utils->log(NULL, SASL_LOG_NOTE, "sql plugin: no result found");
+ utils->log(utils->conn, SASL_LOG_NOTE, "sql plugin: no result found");
return -1;
@@ -721,3 +724,3 @@ static char *sql_create_statement(const char *statement,
const char *prop,
else {
- utils->log(NULL, SASL_LOG_ERR,
+ utils->log(utils->conn, SASL_LOG_ERR,
"'%%v' shouldn't be in a SELECT or DELETE");
@@ -771,3 +774,3 @@ static void sql_get_settings(const sasl_utils_t *utils,
void *glob_context)
if (!e->name) {
- utils->log(NULL, SASL_LOG_ERR, "SQL engine '%s' not supported",
+ utils->log(utils->conn, SASL_LOG_ERR, "SQL engine '%s' not supported",
engine_name);
@@ -847,3 +850,3 @@ static void *sql_connect(sql_settings_t *settings, const
sasl_utils_t *utils)
*/
- utils->log(NULL, SASL_LOG_DEBUG,
+ utils->log(utils->conn, SASL_LOG_DEBUG,
"sql plugin try and connect to a host\n");
@@ -863,3 +866,3 @@ static void *sql_connect(sql_settings_t *settings, const
sasl_utils_t *utils)
- utils->log(NULL, SASL_LOG_DEBUG,
+ utils->log(utils->conn, SASL_LOG_DEBUG,
"sql plugin trying to open db '%s' on host '%s'%s\n",
@@ -879,3 +882,3 @@ static void *sql_connect(sql_settings_t *settings, const
sasl_utils_t *utils)
- utils->log(NULL, SASL_LOG_ERR,
+ utils->log(utils->conn, SASL_LOG_ERR,
"sql plugin could not connect to host %s", cur_host);
@@ -919,3 +922,3 @@ static int sql_auxprop_lookup(void *glob_context,
- sparams->utils->log(NULL, SASL_LOG_DEBUG,
+ sparams->utils->log(sparams->utils->conn, SASL_LOG_DEBUG,
"sql plugin Parse the username %s\n", user);
@@ -968,3 +971,3 @@ static int sql_auxprop_lookup(void *glob_context,
if (!conn) {
- sparams->utils->log(NULL, SASL_LOG_ERR,
+ sparams->utils->log(sparams->utils->conn, SASL_LOG_ERR,
"sql plugin couldn't connect to any host\n");
@@ -1016,5 +1019,6 @@ static int sql_auxprop_lookup(void *glob_context,
do_txn = 1;
- sparams->utils->log(NULL, SASL_LOG_DEBUG, "begin transaction");
+ sparams->utils->log(sparams->utils->conn, SASL_LOG_DEBUG,
+ "begin transaction");
if (settings->sql_engine->sql_begin_txn(conn, sparams->utils)) {
- sparams->utils->log(NULL, SASL_LOG_ERR,
+ sparams->utils->log(sparams->utils->conn, SASL_LOG_ERR,
"Unable to begin transaction\n");
@@ -1023,3 +1027,3 @@ static int sql_auxprop_lookup(void *glob_context,
- sparams->utils->log(NULL, SASL_LOG_DEBUG,
+ sparams->utils->log(sparams->utils->conn, SASL_LOG_DEBUG,
"sql plugin create statement from %s %s %s\n",
@@ -1037,3 +1041,3 @@ static int sql_auxprop_lookup(void *glob_context,
- sparams->utils->log(NULL, SASL_LOG_DEBUG,
+ sparams->utils->log(sparams->utils->conn, SASL_LOG_DEBUG,
"sql plugin doing query %s\n", query);
@@ -1067,5 +1071,6 @@ static int sql_auxprop_lookup(void *glob_context,
do_txn = 1;
- sparams->utils->log(NULL, SASL_LOG_DEBUG, "begin transaction");
+ sparams->utils->log(sparams->utils->conn, SASL_LOG_DEBUG,
+ "begin transaction");
if (settings->sql_engine->sql_begin_txn(conn, sparams->utils)) {
- sparams->utils->log(NULL, SASL_LOG_ERR,
+ sparams->utils->log(sparams->utils->conn, SASL_LOG_ERR,
"Unable to begin transaction\n");
@@ -1074,3 +1079,3 @@ static int sql_auxprop_lookup(void *glob_context,
- sparams->utils->log(NULL, SASL_LOG_DEBUG,
+ sparams->utils->log(sparams->utils->conn, SASL_LOG_DEBUG,
"sql plugin create statement from %s %s %s\n",
@@ -1090,3 +1095,3 @@ static int sql_auxprop_lookup(void *glob_context,
} else {
- sparams->utils->log(NULL, SASL_LOG_DEBUG,
+ sparams->utils->log(sparams->utils->conn, SASL_LOG_DEBUG,
"sql plugin doing query %s\n", query);
@@ -1112,5 +1117,6 @@ static int sql_auxprop_lookup(void *glob_context,
if (do_txn) {
- sparams->utils->log(NULL, SASL_LOG_DEBUG, "commit transaction");
+ sparams->utils->log(sparams->utils->conn, SASL_LOG_DEBUG,
+ "commit transaction");
if (settings->sql_engine->sql_commit_txn(conn, sparams->utils)) {
- sparams->utils->log(NULL, SASL_LOG_ERR,
+ sparams->utils->log(sparams->utils->conn, SASL_LOG_ERR,
"Unable to commit transaction\n");
@@ -1162,3 +1168,3 @@ static int sql_auxprop_store(void *glob_context,
- sparams->utils->log(NULL, SASL_LOG_DEBUG,
+ sparams->utils->log(sparams->utils->conn, SASL_LOG_DEBUG,
"sql plugin Parse the username %s\n", user);
@@ -1205,3 +1211,3 @@ static int sql_auxprop_store(void *glob_context,
if (!conn) {
- sparams->utils->log(NULL, SASL_LOG_ERR,
+ sparams->utils->log(sparams->utils->conn, SASL_LOG_ERR,
"sql plugin couldn't connect to any host\n");
@@ -1214,3 +1220,3 @@ static int sql_auxprop_store(void *glob_context,
if (settings->sql_engine->sql_begin_txn(conn, sparams->utils)) {
- sparams->utils->log(NULL, SASL_LOG_ERR,
+ sparams->utils->log(sparams->utils->conn, SASL_LOG_ERR,
"Unable to begin transaction\n");
@@ -1254,3 +1260,3 @@ static int sql_auxprop_store(void *glob_context,
sparams->utils);
- sparams->utils->log(NULL, SASL_LOG_DEBUG,
+ sparams->utils->log(sparams->utils->conn, SASL_LOG_DEBUG,
"sql plugin doing statement %s\n",
@@ -1269,6 +1275,6 @@ static int sql_auxprop_store(void *glob_context,
if (ret != SASL_OK) {
- sparams->utils->log(NULL, SASL_LOG_ERR,
+ sparams->utils->log(sparams->utils->conn, SASL_LOG_ERR,
"Failed to store auxprop; aborting transaction\n");
if (settings->sql_engine->sql_rollback_txn(conn, sparams->utils)) {
- sparams->utils->log(NULL, SASL_LOG_ERR,
+ sparams->utils->log(sparams->utils->conn, SASL_LOG_ERR,
"Unable to rollback transaction\n");
@@ -1277,3 +1283,3 @@ static int sql_auxprop_store(void *glob_context,
else if (settings->sql_engine->sql_commit_txn(conn, sparams->utils)) {
- sparams->utils->log(NULL, SASL_LOG_ERR,
+ sparams->utils->log(sparams->utils->conn, SASL_LOG_ERR,
"Unable to commit transaction\n");
@@ -1303,3 +1309,3 @@ static void sql_auxprop_free(void *glob_context, const
sasl_utils_t *utils)
- utils->log(NULL, SASL_LOG_DEBUG, "sql freeing memory\n");
+ utils->log(utils->conn, SASL_LOG_DEBUG, "sql freeing memory\n");
@@ -1346,3 +1352,3 @@ int sql_auxprop_plug_init(const sasl_utils_t *utils,
if (!sql_exists(settings->sql_select)) {
- utils->log(NULL, SASL_LOG_ERR, "sql_select option missing");
+ utils->log(utils->conn, SASL_LOG_ERR, "sql_select option missing");
utils->free(settings);
@@ -1351,3 +1357,3 @@ int sql_auxprop_plug_init(const sasl_utils_t *utils,
- utils->log(NULL, SASL_LOG_DEBUG,
+ utils->log(utils->conn, SASL_LOG_DEBUG,
"sql auxprop plugin using %s engine\n",