diff options
author | Eike Rathke <erack@redhat.com> | 2018-10-25 22:48:03 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2018-10-26 01:27:00 +0200 |
commit | 28cc9746a9639ac14d3f6816b7fbf59cacbb42f4 (patch) | |
tree | 35891a8c0ea19b82a68fcd6f5f4a236efc47bfae | |
parent | 9e5d7dff301ccef35429ee5cb7e3b3b80b318993 (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
-rw-r--r-- | sc/source/core/inc/interpre.hxx | 5 |
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(); |