123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- diff --git a/third_party/libxml/src/parser.c b/third_party/libxml/src/parser.c
- index 3a8a0d79e966..4e767091683d 100644
- --- a/third_party/libxml/src/parser.c
- +++ b/third_party/libxml/src/parser.c
- @@ -2081,8 +2081,8 @@ static void xmlSHRINK (xmlParserCtxtPtr ctxt) {
- xmlGROW (ctxt);
-
- static void xmlGROW (xmlParserCtxtPtr ctxt) {
- - unsigned long curEnd = ctxt->input->end - ctxt->input->cur;
- - unsigned long curBase = ctxt->input->cur - ctxt->input->base;
- + ptrdiff_t curEnd = ctxt->input->end - ctxt->input->cur;
- + ptrdiff_t curBase = ctxt->input->cur - ctxt->input->base;
-
- if (((curEnd > (unsigned long) XML_MAX_LOOKUP_LIMIT) ||
- (curBase > (unsigned long) XML_MAX_LOOKUP_LIMIT)) &&
- @@ -8857,6 +8857,18 @@ xmlParseQNameAndCompare(xmlParserCtxtPtr ctxt, xmlChar const *name,
- * caller if it was copied, this can be detected by val[*len] == 0.
- */
-
- +#define GROW_PARSE_ATT_VALUE_INTERNAL(ctxt, in, start, end) \
- + const xmlChar *oldbase = ctxt->input->base;\
- + GROW;\
- + if (ctxt->instate == XML_PARSER_EOF)\
- + return(NULL);\
- + if (oldbase != ctxt->input->base) {\
- + ptrdiff_t delta = ctxt->input->base - oldbase;\
- + start = start + delta;\
- + in = in + delta;\
- + }\
- + end = ctxt->input->end;
- +
- static xmlChar *
- xmlParseAttValueInternal(xmlParserCtxtPtr ctxt, int *len, int *alloc,
- int normalize)
- @@ -8886,14 +8898,7 @@ xmlParseAttValueInternal(xmlParserCtxtPtr ctxt, int *len, int *alloc,
- end = ctxt->input->end;
- start = in;
- if (in >= end) {
- - const xmlChar *oldbase = ctxt->input->base;
- - GROW;
- - if (oldbase != ctxt->input->base) {
- - long delta = ctxt->input->base - oldbase;
- - start = start + delta;
- - in = in + delta;
- - }
- - end = ctxt->input->end;
- + GROW_PARSE_ATT_VALUE_INTERNAL(ctxt, in, start, end)
- }
- if (normalize) {
- /*
- @@ -8910,16 +8915,7 @@ xmlParseAttValueInternal(xmlParserCtxtPtr ctxt, int *len, int *alloc,
- in++;
- start = in;
- if (in >= end) {
- - const xmlChar *oldbase = ctxt->input->base;
- - GROW;
- - if (ctxt->instate == XML_PARSER_EOF)
- - return(NULL);
- - if (oldbase != ctxt->input->base) {
- - long delta = ctxt->input->base - oldbase;
- - start = start + delta;
- - in = in + delta;
- - }
- - end = ctxt->input->end;
- + GROW_PARSE_ATT_VALUE_INTERNAL(ctxt, in, start, end)
- if (((in - start) > XML_MAX_TEXT_LENGTH) &&
- ((ctxt->options & XML_PARSE_HUGE) == 0)) {
- xmlFatalErrMsg(ctxt, XML_ERR_ATTRIBUTE_NOT_FINISHED,
- @@ -8933,16 +8929,7 @@ xmlParseAttValueInternal(xmlParserCtxtPtr ctxt, int *len, int *alloc,
- col++;
- if ((*in++ == 0x20) && (*in == 0x20)) break;
- if (in >= end) {
- - const xmlChar *oldbase = ctxt->input->base;
- - GROW;
- - if (ctxt->instate == XML_PARSER_EOF)
- - return(NULL);
- - if (oldbase != ctxt->input->base) {
- - long delta = ctxt->input->base - oldbase;
- - start = start + delta;
- - in = in + delta;
- - }
- - end = ctxt->input->end;
- + GROW_PARSE_ATT_VALUE_INTERNAL(ctxt, in, start, end)
- if (((in - start) > XML_MAX_TEXT_LENGTH) &&
- ((ctxt->options & XML_PARSE_HUGE) == 0)) {
- xmlFatalErrMsg(ctxt, XML_ERR_ATTRIBUTE_NOT_FINISHED,
- @@ -8971,7 +8958,7 @@ xmlParseAttValueInternal(xmlParserCtxtPtr ctxt, int *len, int *alloc,
- if (ctxt->instate == XML_PARSER_EOF)
- return(NULL);
- if (oldbase != ctxt->input->base) {
- - long delta = ctxt->input->base - oldbase;
- + ptrdiff_t delta = ctxt->input->base - oldbase;
- start = start + delta;
- in = in + delta;
- last = last + delta;
- @@ -8998,16 +8985,7 @@ xmlParseAttValueInternal(xmlParserCtxtPtr ctxt, int *len, int *alloc,
- in++;
- col++;
- if (in >= end) {
- - const xmlChar *oldbase = ctxt->input->base;
- - GROW;
- - if (ctxt->instate == XML_PARSER_EOF)
- - return(NULL);
- - if (oldbase != ctxt->input->base) {
- - long delta = ctxt->input->base - oldbase;
- - start = start + delta;
- - in = in + delta;
- - }
- - end = ctxt->input->end;
- + GROW_PARSE_ATT_VALUE_INTERNAL(ctxt, in, start, end)
- if (((in - start) > XML_MAX_TEXT_LENGTH) &&
- ((ctxt->options & XML_PARSE_HUGE) == 0)) {
- xmlFatalErrMsg(ctxt, XML_ERR_ATTRIBUTE_NOT_FINISHED,
|