You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ca...@apache.org on 2005/11/15 14:10:34 UTC
svn commit: r344362 - in /xerces/c/trunk/src/xercesc/util:
XMLAbstractDoubleFloat.cpp XMLBigDecimal.cpp XMLBigInteger.cpp
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: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org