summaryrefslogtreecommitdiff
path: root/vcl/source
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-07-24 14:47:14 +0100
committerAndras Timar <andras.timar@collabora.com>2018-08-08 14:06:35 +0200
commit013a604554210e1ff874414c74da9b801b980ff4 (patch)
tree757f506607acc33b71ffc27bdd611ea526bfed5b /vcl/source
parent9ad5b456b241256a215d0786e5accdc44dca3255 (diff)
forcepoint#53 restrict to expected index range
Change-Id: I22f01e5a3e3cf51b014ac841cd14071dce5baf0f Reviewed-on: https://gerrit.libreoffice.org/57922 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com> (cherry picked from commit fa82b6a5c74b527dc2aed9d3b63c997580cdb277) (cherry picked from commit d0f42b02c29c1e6aeeaa13d5f0d4a2e8b5ccb881)
Diffstat (limited to 'vcl/source')
-rw-r--r--vcl/source/gdi/CommonSalLayout.cxx9
1 files changed, 7 insertions, 2 deletions
diff --git a/vcl/source/gdi/CommonSalLayout.cxx b/vcl/source/gdi/CommonSalLayout.cxx
index 0cf7e01ce992..6361be2f68e6 100644
--- a/vcl/source/gdi/CommonSalLayout.cxx
+++ b/vcl/source/gdi/CommonSalLayout.cxx
@@ -702,13 +702,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;
}