1 Index: parser.c 2 =================================================================== 3 --- parser.c (revision 3773) 4 +++ parser.c (working copy) 5 @@ -2505,6 +2505,11 @@ xmlStringLenDecodeEntities(xmlParserCtxt 6 c = CUR_SCHAR(str, l); 7 else 8 c = 0; 9 + if ((nbchars > 500000) && 10 + (ctxt->instate == XML_PARSER_ATTRIBUTE_VALUE)) { 11 + xmlFatalErr(ctxt, XML_ERR_ENTITY_LOOP, NULL); 12 + goto int_error; 13 + } 14 } 15 buffer[nbchars++] = 0; 16 return(buffer); 17