# HG changeset patch
# User Nick Wellnhofer <wellnhofer@aevum.de>
# Date 1661007650 -7200
#      Sat Aug 20 17:00:50 2022 +0200
# Node ID f7a865e72c1c843b238eda89af337d0efd970f4c
# Parent  3fbb03dbf133bd9fdb9777f13d2d90be4b920be9
Use xmlStrlen in *CtxtReadDoc

xmlStrlen handles buffers larger than INT_MAX more gracefully.

diff --git a/HTMLparser.c b/HTMLparser.c
--- a/HTMLparser.c
+++ b/HTMLparser.c
@@ -7116,13 +7116,10 @@
 htmlCtxtReadDoc(htmlParserCtxtPtr ctxt, const xmlChar * cur,
                const char *URL, const char *encoding, int options)
 {
-    const char *buf;
-
     if (cur == NULL)
         return (NULL);
-    buf = (const char *) cur;
-    return (htmlCtxtReadMemory(ctxt, buf, strlen(buf), URL, encoding,
-                               options));
+    return (htmlCtxtReadMemory(ctxt, (const char *) cur, xmlStrlen(cur), URL,
+                               encoding, options));
 }
 
 /**
diff --git a/parser.c b/parser.c
--- a/parser.c
+++ b/parser.c
@@ -15359,12 +15359,10 @@
 xmlCtxtReadDoc(xmlParserCtxtPtr ctxt, const xmlChar * cur,
                const char *URL, const char *encoding, int options)
 {
-    const char *buf;
-
     if (cur == NULL)
         return (NULL);
-    buf = (const char *) cur;
-    return (xmlCtxtReadMemory(ctxt, buf, strlen(buf), URL, encoding, options));
+    return (xmlCtxtReadMemory(ctxt, (const char *) cur, xmlStrlen(cur), URL,
+                              encoding, options));
 }
 
 /**