From 756dbef4e54a31777ded7be3c296b3e604ca526e Mon Sep 17 00:00:00 2001 From: Yongtao Huang Date: Sun, 7 Jun 2026 17:59:35 +0800 Subject: [PATCH] Fix missing pfree in HandleExtendProtocol This potential memory leak was detected by **Claude Code**. HandleExtendProtocol allocates a temporary buffer to receive extension protocol data but never frees it. Add missing pfree. Signed-off-by: Yongtao Huang --- src/backend/cdb/dispatcher/cdbdisp_query.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/backend/cdb/dispatcher/cdbdisp_query.c b/src/backend/cdb/dispatcher/cdbdisp_query.c index 3d5045b4fdb..39c0dd203c5 100644 --- a/src/backend/cdb/dispatcher/cdbdisp_query.c +++ b/src/backend/cdb/dispatcher/cdbdisp_query.c @@ -1814,12 +1814,14 @@ bool HandleExtendProtocol(PGconn *conn) if (pqGetnchar(data, length, conn)) { + pfree(data); MemoryContextSwitchTo(oldctx); return false; } StringInfo buf = makeStringInfo(); /* Do not change the raw data, let caller process it. */ appendBinaryStringInfoNT(buf, data, length); + pfree(data); epd->subtagdata[subtag] = lappend(epd->subtagdata[subtag], buf); MemoryContextSwitchTo(oldctx); /* Mark subtag to be consumed. */