[libxml2] 587663 Incorrect Attribute-Value Normalization



commit 283d50279d2defbcedc940a4261758afa0fe752b
Author: Daniel Veillard <veillard redhat com>
Date:   Tue Aug 25 17:18:39 2009 +0200

    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

 parser.c           |    7 ++++++-
 result/noent/att10 |    2 +-
 2 files changed, 7 insertions(+), 2 deletions(-)
---
diff --git a/parser.c b/parser.c
index dfdde8f..0a10b0f 100644
--- a/parser.c
+++ b/parser.c
@@ -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 cc1c6b0..07f0096 100644
--- a/result/noent/att10
+++ b/result/noent/att10
@@ -10,7 +10,7 @@
 ]>
 <doc>
 <tst a="xyz" b="  xyz"/>
-<tst a="&#13;&#13;A&#10; &#10;B&#13;&#10;" b="&#13;&#13;A&#10; &#10;B&#13;&#10;"/>
+<tst a="A B" b="  A   B  "/>
 <tst a="&#13;&#13;A&#10;&#10;B&#13;&#10;" b="&#13;&#13;A&#10;&#10;B&#13;&#10;"/>
 <tst a="x y" b=" x  y "/>
 <tst a="a b" b=" a b "/>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]