From caecf6102f5042908c915afe89834ab7d3a4a4cb Mon Sep 17 00:00:00 2001 From: Eike Rathke Date: Thu, 21 Mar 2013 19:30:36 +0100 Subject: SbiScanner::NextSym: check status after rtl_math_uStringToDouble() For example, 10e308 is overflow, not 0 ... Change-Id: Ib7d622865bfb73581732bda45c76e078ee7d05d0 --- basic/source/comp/scanner.cxx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'basic') diff --git a/basic/source/comp/scanner.cxx b/basic/source/comp/scanner.cxx index 5fbdcef097cf..728187ce0fda 100644 --- a/basic/source/comp/scanner.cxx +++ b/basic/source/comp/scanner.cxx @@ -361,8 +361,11 @@ bool SbiScanner::NextSym() { aError = OUString('.'); GenError( SbERR_BAD_CHAR_IN_NUMBER ); } - // #57844 use localized function - nVal = rtl_math_uStringToDouble( buf, buf+(p-buf), '.', ',', NULL, NULL ); + rtl_math_ConversionStatus eStatus = rtl_math_ConversionStatus_Ok; + const sal_Unicode* pParseEnd = buf; + nVal = rtl_math_uStringToDouble( buf, buf+(p-buf), '.', ',', &eStatus, &pParseEnd ); + if (eStatus != rtl_math_ConversionStatus_Ok || pParseEnd != buf+(p-buf)) + GenError( SbERR_MATH_OVERFLOW ); ndig = ndig - comma; if( !comma && !exp ) -- cgit