Limit nDecPlaces to a sensible value [-20, 20]
Protect against callers using for example rtl_math_StringFormat_F with rtl_math_DecimalPlaces_Max in worst case.. Change-Id: I9f143df6ae67b22e7732547c0f7a53b498caf2b8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104472 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
This commit is contained in:
@@ -433,6 +433,12 @@ void doubleToString(typename T::String ** pResult,
|
||||
break;
|
||||
}
|
||||
|
||||
// Too large values for nDecPlaces make no sense; it might also be
|
||||
// rtl_math_DecimalPlaces_Max was passed with rtl_math_StringFormat_F or
|
||||
// others, but we don't want to allocate/deallocate 2GB just to fill it
|
||||
// with trailing '0' characters..
|
||||
nDecPlaces = std::max<sal_Int32>(std::min<sal_Int32>(nDecPlaces, 20), -20);
|
||||
|
||||
sal_Int32 nDigits = nDecPlaces + 1;
|
||||
|
||||
if (eFormat == rtl_math_StringFormat_F)
|
||||
|
||||
Reference in New Issue
Block a user