Author: cargilld
Date: Tue Nov 15 05:10:30 2005
New Revision: 344362

URL: http://svn.apache.org/viewcvs?rev=344362&view=rev
Log:
Treat "+" and "-" as invalid numeric schema values.

Modified:
    xerces/c/trunk/src/xercesc/util/XMLAbstractDoubleFloat.cpp
    xerces/c/trunk/src/xercesc/util/XMLBigDecimal.cpp
    xerces/c/trunk/src/xercesc/util/XMLBigInteger.cpp

Modified: xerces/c/trunk/src/xercesc/util/XMLAbstractDoubleFloat.cpp
URL: 
http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/util/XMLAbstractDoubleFloat.cpp?rev=344362&r1=344361&r2=344362&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/util/XMLAbstractDoubleFloat.cpp (original)
+++ xerces/c/trunk/src/xercesc/util/XMLAbstractDoubleFloat.cpp Tue Nov 15 
05:10:30 2005
@@ -376,10 +376,18 @@
        {
                minusSeen = true;
                srcStr++;
+        if (!*srcStr)
+        {
+            ThrowXMLwithMemMgr(NumberFormatException, 
XMLExcepts::XMLNUM_Inv_chars, getMemoryManager());
+        }
        }
        else if (*srcStr == chPlus)
        {
                srcStr++;
+        if (!*srcStr)
+        {
+            ThrowXMLwithMemMgr(NumberFormatException, 
XMLExcepts::XMLNUM_Inv_chars, getMemoryManager());
+        }
        }
 
        // scan the string

Modified: xerces/c/trunk/src/xercesc/util/XMLBigDecimal.cpp
URL: 
http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/util/XMLBigDecimal.cpp?rev=344362&r1=344361&r2=344362&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/util/XMLBigDecimal.cpp (original)
+++ xerces/c/trunk/src/xercesc/util/XMLBigDecimal.cpp Tue Nov 15 05:10:30 2005
@@ -231,10 +231,18 @@
     {
         sign = -1;
         startPtr++;
+        if (startPtr == endPtr)
+        {
+            ThrowXMLwithMemMgr(NumberFormatException, 
XMLExcepts::XMLNUM_Inv_chars, manager);
+        }
     }
     else if (*startPtr == chPlus)
     {
-        startPtr++;
+        startPtr++;         
+        if (startPtr == endPtr)
+        {
+            ThrowXMLwithMemMgr(NumberFormatException, 
XMLExcepts::XMLNUM_Inv_chars, manager);
+        }
     }
 
     // Strip leading zeros
@@ -321,10 +329,18 @@
     if (*startPtr == chDash)
     {
         startPtr++;
+        if (startPtr == endPtr)
+        {
+            ThrowXMLwithMemMgr(NumberFormatException, 
XMLExcepts::XMLNUM_Inv_chars, manager);
+        }
     }
     else if (*startPtr == chPlus)
     {
         startPtr++;
+        if (startPtr == endPtr)
+        {
+            ThrowXMLwithMemMgr(NumberFormatException, 
XMLExcepts::XMLNUM_Inv_chars, manager);
+        }
     }
 
     // Strip leading zeros

Modified: xerces/c/trunk/src/xercesc/util/XMLBigInteger.cpp
URL: 
http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/util/XMLBigInteger.cpp?rev=344362&r1=344361&r2=344362&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/util/XMLBigInteger.cpp (original)
+++ xerces/c/trunk/src/xercesc/util/XMLBigInteger.cpp Tue Nov 15 05:10:30 2005
@@ -135,12 +135,21 @@
     {
         signValue = -1;
         startPtr++;
+        if (startPtr == endPtr)
+        {
+            ThrowXMLwithMemMgr(NumberFormatException, 
XMLExcepts::XMLNUM_Inv_chars, manager);
+        }
     }
     else if (*startPtr == chPlus)
     {
         // skip the '+'
         startPtr++;
+        if (startPtr == endPtr)
+        {
+            ThrowXMLwithMemMgr(NumberFormatException, 
XMLExcepts::XMLNUM_Inv_chars, manager);
+        }
     }
+
 
     // Scan past any leading zero.
     while (*startPtr == chDigit_0)



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to