153aa9179Sopenharmony_ciFrom 9feafbc5c5cce13852062a527d719ecce6b54661 Mon Sep 17 00:00:00 2001
253aa9179Sopenharmony_ciFrom: Nick Wellnhofer <wellnhofer@aevum.de>
353aa9179Sopenharmony_ciDate: Sun, 13 Nov 2022 16:56:10 +0100
453aa9179Sopenharmony_ciSubject: [PATCH] io: Check for memory buffer early in xmlParserInputGrow
553aa9179Sopenharmony_ci
653aa9179Sopenharmony_ciReference:https://github.com/GNOME/libxml2/commit/9feafbc5c5cce13852062a527d719ecce6b54661
753aa9179Sopenharmony_ciConflict:NA
853aa9179Sopenharmony_ci---
953aa9179Sopenharmony_ci parserInternals.c | 8 ++++----
1053aa9179Sopenharmony_ci 1 file changed, 4 insertions(+), 4 deletions(-)
1153aa9179Sopenharmony_ci
1253aa9179Sopenharmony_cidiff --git a/parserInternals.c b/parserInternals.c
1353aa9179Sopenharmony_ciindex b8eab4b..0ef44fe 100644
1453aa9179Sopenharmony_ci--- a/parserInternals.c
1553aa9179Sopenharmony_ci+++ b/parserInternals.c
1653aa9179Sopenharmony_ci@@ -310,6 +310,9 @@ xmlParserInputGrow(xmlParserInputPtr in, int len) {
1753aa9179Sopenharmony_ci     if (in->cur == NULL) return(-1);
1853aa9179Sopenharmony_ci     if (in->buf->buffer == NULL) return(-1);
1953aa9179Sopenharmony_ci 
2053aa9179Sopenharmony_ci+    /* Don't grow memory buffers. */
2153aa9179Sopenharmony_ci+    if (in->buf->readcallback == NULL) return(0);
2253aa9179Sopenharmony_ci+
2353aa9179Sopenharmony_ci     CHECK_BUFFER(in);
2453aa9179Sopenharmony_ci 
2553aa9179Sopenharmony_ci     indx = in->cur - in->base;
2653aa9179Sopenharmony_ci@@ -319,10 +322,7 @@ xmlParserInputGrow(xmlParserInputPtr in, int len) {
2753aa9179Sopenharmony_ci 
2853aa9179Sopenharmony_ci         return(0);
2953aa9179Sopenharmony_ci     }
3053aa9179Sopenharmony_ci-    if (in->buf->readcallback != NULL) {
3153aa9179Sopenharmony_ci-	ret = xmlParserInputBufferGrow(in->buf, len);
3253aa9179Sopenharmony_ci-    } else
3353aa9179Sopenharmony_ci-        return(0);
3453aa9179Sopenharmony_ci+    ret = xmlParserInputBufferGrow(in->buf, len);
3553aa9179Sopenharmony_ci 
3653aa9179Sopenharmony_ci     in->base = xmlBufContent(in->buf->buffer);
3753aa9179Sopenharmony_ci     in->cur = in->base + indx;
3853aa9179Sopenharmony_ci-- 
3953aa9179Sopenharmony_ci2.27.0
4053aa9179Sopenharmony_ci
41