summaryrefslogtreecommitdiff
path: root/sc/source/core/inc
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2018-10-25 22:48:03 +0200
committerEike Rathke <erack@redhat.com>2018-10-26 01:27:00 +0200
commit28cc9746a9639ac14d3f6816b7fbf59cacbb42f4 (patch)
tree35891a8c0ea19b82a68fcd6f5f4a236efc47bfae /sc/source/core/inc
parent9e5d7dff301ccef35429ee5cb7e3b3b80b318993 (diff)
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
Diffstat (limited to 'sc/source/core/inc')
-rw-r--r--sc/source/core/inc/interpre.hxx5
1 files changed, 3 insertions, 2 deletions
diff --git a/sc/source/core/inc/interpre.hxx b/sc/source/core/inc/interpre.hxx
index 85f96435ba9a..c7bcfb9a7d91 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();