From 9f92321ce09309de1b25b04567195045235d5134 Mon Sep 17 00:00:00 2001
From: Zsolt Parragi <zsolt.parragi@percona.com>
Date: Sun, 15 Mar 2026 11:22:34 +0000
Subject: [PATCH 4/4] gen_guc_tables: validate GUC name format

Verify that each entry's name consists of letters, digits, and
underscores, starting with a letter.  This catches accidental spaces
or special characters that would produce invalid C code.
---
 src/backend/utils/misc/gen_guc_tables.pl | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/backend/utils/misc/gen_guc_tables.pl b/src/backend/utils/misc/gen_guc_tables.pl
index 9b6e3ed6622..2e8a3391046 100644
--- a/src/backend/utils/misc/gen_guc_tables.pl
+++ b/src/backend/utils/misc/gen_guc_tables.pl
@@ -83,6 +83,13 @@ sub validate_guc_entry
 		}
 	}
 
+	unless ($entry->{name} =~ /^[a-zA-Z][a-zA-Z0-9_]*$/)
+	{
+		die sprintf(
+			qq{%s:%d: error: entry name "%s" is not a valid GUC name (must start with a letter, contain only letters, digits, and underscores)\n},
+			$input_fname, $entry->{line_number}, $entry->{name});
+	}
+
 	unless (exists $type_specific_fields{ $entry->{type} })
 	{
 		die sprintf(
-- 
2.43.0

