From 28663310a6a7f2459e3af633a3b1528d22b9ac06 Mon Sep 17 00:00:00 2001
From: Shixin Wang <wang-shi-xin@outlook.com>
Date: Tue, 16 Dec 2025 13:41:08 +0800
Subject: [PATCH] Fix memory leak in tzparser.c

When overriding a timezone entry in addToArray(), original
midptr->zone string was leaked before being replaced with the new
entry->zone. Add pfree() call to free the old zone string before
overwriting it.

Author: Shixin Wang <wang-shi-xin@outlook.com>
---
 src/backend/utils/misc/tzparser.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/backend/utils/misc/tzparser.c b/src/backend/utils/misc/tzparser.c
index d7e84bab981..6a1893f37ca 100644
--- a/src/backend/utils/misc/tzparser.c
+++ b/src/backend/utils/misc/tzparser.c
@@ -229,6 +229,8 @@ addToArray(tzEntry **base, int *arraysize, int n,
 			if (override)
 			{
 				/* same abbrev but something is different, override */
+				if (midptr->zone != NULL)
+					pfree(midptr->zone);
 				midptr->zone = entry->zone;
 				midptr->offset = entry->offset;
 				midptr->is_dst = entry->is_dst;
-- 
2.50.1 (Apple Git-155)

