sc/source/ui/view/hintwin.cxx | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
New commits: commit 924733c65902d0b17764aded56c88c99d4b9a568 Author: Noel Grandin <noelgran...@gmail.com> AuthorDate: Sat Mar 13 20:35:12 2021 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Sun Mar 14 12:42:17 2021 +0100 tdf#140986 hang in validity message this doesn't fix the root of the problem (something generating an insanely long validation message). It just prevents that problem from locking up the UI. Change-Id: I334729a30eca4a11d0150e3c89ff11c92a862061 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112461 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/sc/source/ui/view/hintwin.cxx b/sc/source/ui/view/hintwin.cxx index f66fe8db67ec..a9131828b30f 100644 --- a/sc/source/ui/view/hintwin.cxx +++ b/sc/source/ui/view/hintwin.cxx @@ -31,6 +31,7 @@ #include <vcl/outdev.hxx> #include <vcl/settings.hxx> #include <vcl/metric.hxx> +#include <sal/log.hxx> #define HINT_LINESPACE 2 #define HINT_INDENT 3 @@ -102,9 +103,16 @@ drawinglayer::primitive2d::Primitive2DContainer ScOverlayHint::createOverlaySequ sal_Int32 nIndex = 0; Point aLineStart = aTextStart; + sal_Int32 nLineCount = 0; while (nIndex != -1) { OUString aLine = m_aMessage.getToken( 0, '\r', nIndex ); + if (aLine.getLength() > 255) + { + // prevent silliness higher up from hanging up the program + SAL_WARN("sc", "ridiculously long line, truncating, len=" << aLine.getLength()); + aLine = aLine.copy(0,255); + } aTextMatrix = basegfx::utils::createScaleTranslateB2DHomMatrix( aFontSize.getX(), aFontSize.getY(), @@ -122,6 +130,13 @@ drawinglayer::primitive2d::Primitive2DContainer ScOverlayHint::createOverlaySequ aSeq.push_back(pMessage); aLineStart.AdjustY(nLineHeight ); + nLineCount++; + if (nLineCount > 50) + { + // prevent silliness higher up from hanging up the program + SAL_WARN("sc", "ridiculously long message, bailing out"); + break; + } } rRange.expand(basegfx::B2DTuple(rRange.getMaxX() + aHintMargin.Width(), _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits