From d5e9e2330e3a4d06b6686586fde6ea332c95be61 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Sat, 23 Mar 2019 17:35:05 -0400
Subject: [PATCH] Revert strlen -> strnlen optimization pre-v11.

We don't have a src/port substitute for that function in older branches,
so it fails on platforms lacking the function natively.  Per buildfarm.
---
 src/backend/utils/adt/xml.c | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c
index d01d4fe492e..931f4c3e8fd 100644
--- a/src/backend/utils/adt/xml.c
+++ b/src/backend/utils/adt/xml.c
@@ -1155,15 +1155,8 @@ parse_xml_decl(const xmlChar *str, size_t *lenp,
 	if (xmlStrncmp(p, (xmlChar *) "<?xml", 5) != 0)
 		goto finished;
 
-	/*
-	 * If next char is a name char, it's a PI like <?xml-stylesheet ...?>
-	 * rather than an XMLDecl, so we have done what we came to do and found no
-	 * XMLDecl.
-	 *
-	 * We need an input length value for xmlGetUTF8Char, but there's no need
-	 * to count the whole document size, so use strnlen not strlen.
-	 */
-	utf8len = strnlen((const char *) (p + 5), MAX_MULTIBYTE_CHAR_LEN);
+	/* if next char is name char, it's a PI like <?xml-stylesheet ...?> */
+	utf8len = strlen((const char *) (p + 5));
 	utf8char = xmlGetUTF8Char(p + 5, &utf8len);
 	if (PG_XMLISNAMECHAR(utf8char))
 		goto finished;
-- 
GitLab