2010-04-21 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Wed, 21 Apr 2010 08:19:39 +0000 (08:19 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Wed, 21 Apr 2010 08:19:39 +0000 (08:19 -0000)
* XmlTextReader.cs, DTDReader.cs : 0xFFFF was treated as if it were
  0x10000. (It is invalid and should be rejected by decent
  XmlReaders usage though.) Fixed bug #594628.

svn path=/trunk/mcs/; revision=155853

mcs/class/System.XML/System.Xml/ChangeLog
mcs/class/System.XML/System.Xml/DTDReader.cs
mcs/class/System.XML/System.Xml/XmlTextReader.cs

index b405fa55b3c3963003278808e8f357c834d1af0a..04d45073ed08980ef8be0031d48e2e1c6cb0727a 100644 (file)
@@ -1,3 +1,9 @@
+2010-04-21  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XmlTextReader.cs, DTDReader.cs : 0xFFFF was treated as if it were
+         0x10000. (It is invalid and should be rejected by decent
+         XmlReaders usage though.) Fixed bug #594628.
+
 2010-03-29  Atsushi Enomoto  <atsushi@ximian.com>
 
        * XmlQualifiedName.cs : do not reject names in no namespace.
index a918a7b6f186c28291e5b5a2ea20cd3ef41451b0..a2d1b04d56e53372dcae442bd17a939dbf1fecee 100644 (file)
@@ -1508,7 +1508,7 @@ namespace System.Xml
                private void AppendNameChar (int ch)
                {
                        CheckNameCapacity ();
-                       if (ch < Char.MaxValue)
+                       if (ch <= Char.MaxValue)
                                nameBuffer [nameLength++] = (char) ch;
                        else {
                                nameBuffer [nameLength++] = (char) (ch / 0x10000 + 0xD800 - 1);
index c43f2d594e6d0bf56bf1434a7506298356335df6..7c80182e12792a236a0df7c4b349596c8aa12c2d 100644 (file)
@@ -1580,7 +1580,7 @@ namespace System.Xml
 
                private void AppendValueChar (int ch)
                {
-                       if (ch < Char.MaxValue)
+                       if (ch <= Char.MaxValue)
                                valueBuffer.Append ((char) ch);
                        else
                                AppendSurrogatePairValueChar (ch);
@@ -1662,7 +1662,7 @@ namespace System.Xml
                                // FIXME: it might be optimized by the JIT later,
 //                             AppendValueChar (ch);
                                {
-                                       if (ch < Char.MaxValue)
+                                       if (ch <= Char.MaxValue)
                                                valueBuffer.Append ((char) ch);
                                        else
                                                AppendSurrogatePairValueChar (ch);
@@ -1983,7 +1983,7 @@ namespace System.Xml
                                        // FIXME: it might be optimized by the JIT later,
 //                                     AppendValueChar (ch);
                                        {
-                                               if (ch < Char.MaxValue)
+                                               if (ch <= Char.MaxValue)
                                                        valueBuffer.Append ((char) ch);
                                                else
                                                        AppendSurrogatePairValueChar (ch);
@@ -2376,7 +2376,7 @@ namespace System.Xml
                                // FIXME: it might be optimized by the JIT later,
 //                             AppendValueChar (ch);
                                {
-                                       if (ch < Char.MaxValue)
+                                       if (ch <= Char.MaxValue)
                                                valueBuffer.Append ((char) ch);
                                        else
                                                AppendSurrogatePairValueChar (ch);
@@ -2774,7 +2774,7 @@ namespace System.Xml
                        // AppendNameChar (ch);
                        {
                                // nameBuffer.Length is always non-0 so no need to ExpandNameCapacity () here
-                               if (ch < Char.MaxValue)
+                               if (ch <= Char.MaxValue)
                                        nameBuffer [nameLength++] = (char) ch;
                                else
                                        AppendSurrogatePairNameChar (ch);
@@ -2791,7 +2791,7 @@ namespace System.Xml
                                {
                                        if (nameLength == nameCapacity)
                                                ExpandNameCapacity ();
-                                       if (ch < Char.MaxValue)
+                                       if (ch <= Char.MaxValue)
                                                nameBuffer [nameLength++] = (char) ch;
                                        else
                                                AppendSurrogatePairNameChar (ch);
@@ -2947,7 +2947,7 @@ namespace System.Xml
                                        return i;
                                default:
                                        Advance (c);
-                                       if (c < Char.MaxValue)
+                                       if (c <= Char.MaxValue)
                                                buffer [bufIndex++] = (char) c;
                                        else {
                                                buffer [bufIndex++] = (char) ((c - 0x10000) / 0x400 + 0xD800);