From 69300347b5a8b23b2c117936f7b144ec90a6e59f Mon Sep 17 00:00:00 2001
From: Joel Jacobson <joel@compiler.org>
Date: Sun, 1 Mar 2026 17:59:43 +0100
Subject: [PATCH] Fix sizeof bug in RegisterExtensionExplainOption

The allocations used sizeof(char *) instead of
sizeof(ExplainExtensionOption).
---
 src/backend/commands/explain_state.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/backend/commands/explain_state.c b/src/backend/commands/explain_state.c
index 803c74dd178..77f59b8e500 100644
--- a/src/backend/commands/explain_state.c
+++ b/src/backend/commands/explain_state.c
@@ -335,7 +335,7 @@ RegisterExtensionExplainOption(const char *option_name,
 		ExplainExtensionOptionArray = (ExplainExtensionOption *)
 			MemoryContextAlloc(TopMemoryContext,
 							   ExplainExtensionOptionsAllocated
-							   * sizeof(char *));
+							   * sizeof(ExplainExtensionOption));
 	}
 
 	/* If there's an array but it's currently full, expand it. */
@@ -344,7 +344,7 @@ RegisterExtensionExplainOption(const char *option_name,
 		int			i = pg_nextpower2_32(ExplainExtensionOptionsAssigned + 1);
 
 		ExplainExtensionOptionArray = (ExplainExtensionOption *)
-			repalloc(ExplainExtensionOptionArray, i * sizeof(char *));
+			repalloc(ExplainExtensionOptionArray, i * sizeof(ExplainExtensionOption));
 		ExplainExtensionOptionsAllocated = i;
 	}
 
-- 
2.52.0

