From c93f50342d44f43596014b577a09f52b1bf966c2 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Tue, 24 Jul 2018 14:47:14 +0100 Subject: forcepoint#53 restrict to expected index range Change-Id: I22f01e5a3e3cf51b014ac841cd14071dce5baf0f Reviewed-on: https://gerrit.libreoffice.org/57922 Tested-by: Jenkins Reviewed-by: Eike Rathke (cherry picked from commit fa82b6a5c74b527dc2aed9d3b63c997580cdb277) --- vcl/source/gdi/CommonSalLayout.cxx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'vcl') diff --git a/vcl/source/gdi/CommonSalLayout.cxx b/vcl/source/gdi/CommonSalLayout.cxx index cfd86ed27409..3a7969547742 100644 --- a/vcl/source/gdi/CommonSalLayout.cxx +++ b/vcl/source/gdi/CommonSalLayout.cxx @@ -815,13 +815,18 @@ bool CommonSalLayout::LayoutText(ImplLayoutArgs& rArgs) bool CommonSalLayout::GetCharWidths(DeviceCoordinate* pCharWidths) const { - int nCharCount = mnEndCharPos - mnMinCharPos; + const int nCharCount = mnEndCharPos - mnMinCharPos; for (int i = 0; i < nCharCount; ++i) pCharWidths[i] = 0; for (auto const& aGlyphItem : m_GlyphItems) - pCharWidths[aGlyphItem.mnCharPos - mnMinCharPos] += aGlyphItem.mnNewWidth; + { + const int nIndex = aGlyphItem.mnCharPos - mnMinCharPos; + if (nIndex >= nCharCount) + continue; + pCharWidths[nIndex] += aGlyphItem.mnNewWidth; + } return true; } -- cgit v1.2.3