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();