From e9ece34aeb27d7654bdcc5cf5fa49f5d7bbcc555 Mon Sep 17 00:00:00 2001 From: Ian Barwick Date: Wed, 27 Mar 2019 11:00:31 +0900 Subject: [PATCH] log_db_error(): fix formatted message handling --- dbutils.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/dbutils.c b/dbutils.c index 681d772e..b47dbaa0 100644 --- a/dbutils.c +++ b/dbutils.c @@ -67,14 +67,17 @@ void log_db_error(PGconn *conn, const char *query_text, const char *fmt,...) { va_list ap; + char buf[MAXLEN]; + int retval; va_start(ap, fmt); - - log_error(fmt, ap); - + retval = vsnprintf(buf, MAXLEN, fmt, ap); va_end(ap); - if (conn != NULL && PQstatus(conn) == CONNECTION_OK) + if (retval < MAXLEN) + log_error("%s", buf); + + if (conn != NULL) { log_detail("\n%s", PQerrorMessage(conn)); }