diff --git a/ChangeLog b/ChangeLog index dee486d8..7347e58a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Wed Feb 18 15:20:42 CET 2004 Daniel Veillard + + * parser.c: fixed a problem in push mode when attribute contains + unescaped '>' characters, fixes bug #134566 + * test/att6 result//att6*: added the test to the regression suite + Tue Feb 17 17:26:31 CET 2004 Daniel Veillard * valid.c: removing a non-linear behaviour from ID/IDREF raised diff --git a/parser.c b/parser.c index 92cb3829..f5665179 100644 --- a/parser.c +++ b/parser.c @@ -9030,7 +9030,8 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { } if (!terminate) { if (ctxt->progressive) { - if ((lastgt == NULL) || (ctxt->input->cur > lastgt)) + /* > can be found unescaped in attribute values */ + if ((lastlt == NULL) || (ctxt->input->cur >= lastlt)) goto done; } else if (xmlParseLookupSequence(ctxt, '>', 0, 0) < 0) { goto done; diff --git a/result/att6 b/result/att6 new file mode 100644 index 00000000..338e6b7f --- /dev/null +++ b/result/att6 @@ -0,0 +1,6 @@ + + + + pvalue->ReferencedOrder.SellersOrderID + + diff --git a/result/att6.rdr b/result/att6.rdr new file mode 100644 index 00000000..6d393526 --- /dev/null +++ b/result/att6.rdr @@ -0,0 +1,15 @@ +0 1 Invoice 0 0 +1 14 #text 0 1 + +1 1 cat:ReferencedOrder 0 0 +2 14 #text 0 1 + +2 1 cat:SellersOrderID 0 0 +3 3 #text 0 1 pvalue->ReferencedOrder.SellersOrderID +2 15 cat:SellersOrderID 0 0 +2 14 #text 0 1 + +1 15 cat:ReferencedOrder 0 0 +1 14 #text 0 1 + +0 15 Invoice 0 0 diff --git a/result/att6.sax b/result/att6.sax new file mode 100644 index 00000000..8b05a2ed --- /dev/null +++ b/result/att6.sax @@ -0,0 +1,22 @@ +SAX.setDocumentLocator() +SAX.startDocument() +SAX.startElement(Invoice, xmlns:ccts='urn:oasis:names:tc:ubl:CoreComponentParameters:1.0:0.70', xmlns:cct='urn:oasis:names:tc:ubl:CoreComponentTypes:1.0:0.70', xmlns:cat='urn:oasis:names:tc:ubl:CommonAggregateTypes:1.0:0.70', xmlns='urn:oasis:names:tc:ubl:Invoice:1.0:0.70') +SAX.characters( + , 4) +SAX.startElement(cat:ReferencedOrder) +SAX.characters( + , 7) +SAX.getEntity(gt) +SAX.startElement(cat:SellersOrderID, schemeID='pvalue->ReferencedOrder.SellersOrderID.schemeID', schemeAgencyID='pvalue->ReferencedOrder.SellersOrderID.schemeAgencyID', schemeVersionID='pvalue->ReferencedOrder.SellersOrderID.schemeVersionID', schemeAgencySchemeID='pvalue->ReferencedOrder.SellersOrderID.schemeAgencySchemeID', schemeAgencySchemeAgencyID='pvalue->ReferencedOrder.SellersOrderID.schemeAgencySchemeAgencyID', schemeDataURI='pvalue->ReferencedOrder.SellersOrderID.schemeDataURI', schemeURI='pvalue->ReferencedOrder.SellersOrderID.schemeURI', UID='pvalue->ReferencedOrder.SellersOrderID.UID', UIDRef='pvalue->ReferencedOrder.SellersOrderID.UIDRef', UIDRefs='pvalue->ReferencedOrder.SellersOrderID.UIDRefs0', language='pvalue->ReferencedOrder.SellersOrderID.language') +SAX.characters(pvalue-, 7) +SAX.getEntity(gt) +SAX.characters(>, 1) +SAX.characters(ReferencedOrder.SellersOrderID, 30) +SAX.endElement(cat:SellersOrderID) +SAX.characters( + , 4) +SAX.endElement(cat:ReferencedOrder) +SAX.characters( +, 1) +SAX.endElement(Invoice) +SAX.endDocument() diff --git a/result/noent/att6 b/result/noent/att6 new file mode 100644 index 00000000..338e6b7f --- /dev/null +++ b/result/noent/att6 @@ -0,0 +1,6 @@ + + + + pvalue->ReferencedOrder.SellersOrderID + + diff --git a/test/att6 b/test/att6 new file mode 100644 index 00000000..79508e95 --- /dev/null +++ b/test/att6 @@ -0,0 +1,6 @@ + + + + pvalue->ReferencedOrder.SellersOrderID + + \ No newline at end of file