From 3adf9ced17dfa84faa209127b4499e5a5b995806 Mon Sep 17 00:00:00 2001
From: Robert Haas <rhaas@postgresql.org>
Date: Mon, 14 Mar 2016 13:48:35 -0400
Subject: [PATCH] Improve check for overly-long extensible node name.

The old code is bad for two reasons.  First, it has an off-by-one
error.  Second, it won't help if you aren't running with assertions
enabled.  Per discussion, we want a check here in that case too.

Author: KaiGai Kohei, adjusted by me.
Reviewed-by: Petr Jelinek
Discussion: 56E0D547.1030101@2ndquadrant.com
---
 src/backend/nodes/extensible.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/backend/nodes/extensible.c b/src/backend/nodes/extensible.c
index e78a12bab7e..2473b658b17 100644
--- a/src/backend/nodes/extensible.c
+++ b/src/backend/nodes/extensible.c
@@ -51,7 +51,8 @@ RegisterExtensibleNodeMethods(const ExtensibleNodeMethods *methods)
 											  100, &ctl, HASH_ELEM);
 	}
 
-	Assert(strlen(methods->extnodename) <= EXTNODENAME_MAX_LEN);
+	if (strlen(methods->extnodename) >= EXTNODENAME_MAX_LEN)
+		elog(ERROR, "extensible node name is too long");
 
 	entry = (ExtensibleNodeEntry *) hash_search(extensible_node_methods,
 												methods->extnodename,
-- 
GitLab