dbertoni 01/12/07 12:13:30
Modified: c/src/PlatformSupport XalanNumberFormat.cpp
Log:
Make sure not to underun the buffer.
Revision Changes Path
1.11 +4 -3 xml-xalan/c/src/PlatformSupport/XalanNumberFormat.cpp
Index: XalanNumberFormat.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/XalanNumberFormat.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- XalanNumberFormat.cpp 2001/09/25 21:12:51 1.10
+++ XalanNumberFormat.cpp 2001/12/07 20:13:30 1.11
@@ -245,7 +245,8 @@
}
else
{
- const XalanDOMString::size_type bufsize = len +
len/m_groupingSize + 1;
+ // Add two, so we leave one byte at the beginning as
empty space
+ const XalanDOMString::size_type bufsize = len +
len / m_groupingSize + 2;
XalanDOMChar* const buffer = new
XalanDOMChar[bufsize];
@@ -255,14 +256,14 @@
*p-- = 0; // null terminate
- for (XalanDOMString::size_type i = 0, ix = len - 1; i <
len; i++, ix--)
+ for (XalanDOMString::size_type i = 0, ix = len - 1; i <
len && p > buffer; i++, ix--)
{
const XalanDOMChar c =
charAt(value, ix);
if (i && !(i% m_groupingSize))
{
// Could be a multiple character
separator??
- for (long j =
long(m_groupingSeparator.length() - 1); j>=0; j--)
+ for (long j =
long(m_groupingSeparator.length() - 1); j >= 0 && p > buffer; j--)
*p-- =
charAt(m_groupingSeparator, j);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]