From e8bc4f975ef181c63641d8e24392642dc080ecd8 Mon Sep 17 00:00:00 2001
From: Jianghua Yang <yjhjstz@gmail.com>
Date: Tue, 1 Apr 2025 04:26:05 +0800
Subject: [PATCH] Fix potential overflow in binary search mid calculation.

---
 src/backend/utils/mmgr/dsa.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/backend/utils/mmgr/dsa.c b/src/backend/utils/mmgr/dsa.c
index 2d4639a6362..64e276bf465 100644
--- a/src/backend/utils/mmgr/dsa.c
+++ b/src/backend/utils/mmgr/dsa.c
@@ -783,7 +783,8 @@ dsa_allocate_extended(dsa_area *area, size_t size, int flags)
 
 		while (min < max)
 		{
-			uint16		mid = (min + max) / 2;
+			/* Avoid overflow in the middle calculation */
+			uint16		mid = min + (max - min) / 2;
 			uint16		class_size = dsa_size_classes[mid];
 
 			if (class_size < size)
-- 
2.25.1

