Hi, Commit 4966bd3ed95e revealed a non-critical memory leak in ProcessStartupPacket() which Valgrind is very much upset about:
``` 63 (32 direct, 31 indirect) bytes in 1 blocks are definitely lost in loss record 355 of 800 at 0x9D260C: palloc (mcxt.c:1411) by 0x54B3D2: new_list (list.c:137) by 0x54B8CC: lappend (list.c:344) by 0x78B41A: ProcessStartupPacket (backend_startup.c:786) by 0x78A411: BackendInitialize (backend_startup.c:295) by 0x789F2F: BackendMain (backend_startup.c:110) by 0x67EEED: postmaster_child_launch (launch_backend.c:268) by 0x685D50: BackendStartup (postmaster.c:3606) by 0x6830CF: ServerLoop (postmaster.c:1713) by 0x682982: PostmasterMain (postmaster.c:1403) by 0x547DFE: main (main.c:231) ``` The proposed patch silences the warnings. -- Best regards, Aleksander Alekseev
From 079a646f4db6ff80ec02a6bb8884f4c5b075345c Mon Sep 17 00:00:00 2001 From: Aleksander Alekseev <[email protected]> Date: Thu, 12 Mar 2026 14:53:38 +0300 Subject: [PATCH v1] Free memory allocated for unrecognized_protocol_options Since 4966bd3ed95e Valgrind started to warn about little amount of memory being leaked in ProcessStartupPacket(). This is not critical but the warnings may distract from real issues. Fix it by freeing the list after use. Author: Aleksander Alekseev <[email protected]> Reviewed-by: TODO FIXME Discussion: TODO FIXME --- src/backend/tcop/backend_startup.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/backend/tcop/backend_startup.c b/src/backend/tcop/backend_startup.c index c517115927c..5abf276c898 100644 --- a/src/backend/tcop/backend_startup.c +++ b/src/backend/tcop/backend_startup.c @@ -825,6 +825,8 @@ ProcessStartupPacket(Port *port, bool ssl_done, bool gss_done) if (PG_PROTOCOL_MINOR(proto) > PG_PROTOCOL_MINOR(PG_PROTOCOL_LATEST) || unrecognized_protocol_options != NIL) SendNegotiateProtocolVersion(unrecognized_protocol_options); + + list_free_deep(unrecognized_protocol_options); } /* Check a user name was given. */ -- 2.43.0
