Change kScInterpreterMaxStrLen now result string length limit to 256MB
This is arbitrary.
Change-Id: I88875e674464984c174e27fa6038080cc7366ecf
Reviewed-on: https://gerrit.libreoffice.org/62375
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
diff --git a/sc/source/core/inc/interpre.hxx b/sc/source/core/inc/interpre.hxx
index 85f9643..c7bcfb9 100644
--- a/sc/source/core/inc/interpre.hxx
+++ b/sc/source/core/inc/interpre.hxx
@@ -91,7 +91,8 @@ class SharedStringPool;
}
constexpr sal_Int32 kScInterpreterMaxStrLen = SAL_MAX_UINT16;
/// Arbitrary 256MB result string length limit.
constexpr sal_Int32 kScInterpreterMaxStrLen = SAL_MAX_INT32 / 8;
#define MAXSTACK (4096 / sizeof(formula::FormulaToken*))
@@ -1102,7 +1103,7 @@ inline sal_Int32 ScInterpreter::GetStringPositionArgument()
inline bool ScInterpreter::CheckStringResultLen( OUString& rResult, const OUString& rAdd )
{
if ( rResult.getLength() + rAdd.getLength() > kScInterpreterMaxStrLen )
if (rAdd.getLength() > kScInterpreterMaxStrLen - rResult.getLength())
{
SetError( FormulaError::StringOverflow );
rResult.clear();