From 661237056b3ad92af40bc674459152d5ea0a58bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Herrera?= Date: Tue, 17 Feb 2026 16:38:24 +0100 Subject: [PATCH] Fix memory leak in new GUC check_hook Commit 38e0190ced71 forgot to pfree() an allocation (freed in other places of the same function) in only one of several spots in check_log_min_messages(). Per Coverity. Add that. While at it, avoid open-coding guc_strdup(). The new coding does a strlen() that wasn't there before, but I doubt it's measurable. --- src/backend/utils/error/elog.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c index 59315e94e3e..cb1c9d85ffe 100644 --- a/src/backend/utils/error/elog.c +++ b/src/backend/utils/error/elog.c @@ -2363,11 +2363,12 @@ lmm_fail: appendStringInfo(&buf, ", %s", elem); } - result = (char *) guc_malloc(LOG, buf.len + 1); + result = guc_strdup(LOG, buf.data); if (!result) + { + pfree(buf.data); return false; - memcpy(result, buf.data, buf.len); - result[buf.len] = '\0'; + } guc_free(*newval); *newval = result;