0004-gen_guc_tables-validate-GUC-name-format.patch
application/octet-stream
Filename: 0004-gen_guc_tables-validate-GUC-name-format.patch
Type: application/octet-stream
Part: 3
Message:
gen_guc_tables improvements
Patch
Format: format-patch
Series: patch 0004
Subject: gen_guc_tables: validate GUC name format
| File | + | − |
|---|---|---|
| src/backend/utils/misc/gen_guc_tables.pl | 7 | 0 |
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