Author: cargilld
Date: Tue Nov 15 05:08:06 2005
New Revision: 344361
URL: http://svn.apache.org/viewcvs?rev=344361&view=rev
Log:
Treat "+" and "-" as invalid numeric schema values.
Modified:
xerces/c/branches/xerces-2.7/src/xercesc/util/XMLAbstractDoubleFloat.cpp
xerces/c/branches/xerces-2.7/src/xercesc/util/XMLBigDecimal.cpp
xerces/c/branches/xerces-2.7/src/xercesc/util/XMLBigInteger.cpp
Modified:
xerces/c/branches/xerces-2.7/src/xercesc/util/XMLAbstractDoubleFloat.cpp
URL:
http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/util/XMLAbstractDoubleFloat.cpp?rev=344361&r1=344360&r2=344361&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/util/XMLAbstractDoubleFloat.cpp
(original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/util/XMLAbstractDoubleFloat.cpp
Tue Nov 15 05:08:06 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/branches/xerces-2.7/src/xercesc/util/XMLBigDecimal.cpp
URL:
http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/util/XMLBigDecimal.cpp?rev=344361&r1=344360&r2=344361&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/util/XMLBigDecimal.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/util/XMLBigDecimal.cpp Tue Nov 15
05:08:06 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/branches/xerces-2.7/src/xercesc/util/XMLBigInteger.cpp
URL:
http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/util/XMLBigInteger.cpp?rev=344361&r1=344360&r2=344361&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/util/XMLBigInteger.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/util/XMLBigInteger.cpp Tue Nov 15
05:08:06 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]