diff options
author | Daniel Veillard <veillard@redhat.com> | 2009-08-25 17:18:39 +0200 |
---|---|---|
committer | Daniel Veillard <veillard@redhat.com> | 2009-08-25 17:18:39 +0200 |
commit | 283d50279d2defbcedc940a4261758afa0fe752b (patch) | |
tree | 0acdb1e9953862498b9519fb37f4d56821c71ae0 | |
parent | eeb9932990528a2746deebac26d0affdd55245f3 (diff) | |
download | libxml2-283d50279d2defbcedc940a4261758afa0fe752b.tar.gz |
587663 Incorrect Attribute-Value Normalization
* parser.c: when replacing entities and that the entity is CDATA and
reference entities then white space character in replacement text
need to be replaced by 0x20
* result/noent/att10: correct the output of the associated regression
test
-rw-r--r-- | parser.c | 7 | ||||
-rw-r--r-- | result/noent/att10 | 2 |
2 files changed, 7 insertions, 2 deletions
@@ -3705,7 +3705,12 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { if (rep != NULL) { current = rep; while (*current != 0) { /* non input consuming */ - buf[len++] = *current++; + if ((*current == 0xD) || (*current == 0xA) || + (*current == 0x9)) { + buf[len++] = 0x20; + current++; + } else + buf[len++] = *current++; if (len > buf_size - 10) { growBuffer(buf, 10); } diff --git a/result/noent/att10 b/result/noent/att10 index cc1c6b0a..07f0096c 100644 --- a/result/noent/att10 +++ b/result/noent/att10 @@ -10,7 +10,7 @@ ]> <doc> <tst a="xyz" b=" xyz"/> -<tst a=" A B " b=" A B "/> +<tst a="A B" b=" A B "/> <tst a=" A B " b=" A B "/> <tst a="x y" b=" x y "/> <tst a="a b" b=" a b "/> |