vcl/source/fontsubset/sft.cxx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
New commits: commit f975fbf50ef6da9d610885eb7ca46d93ef779481 Author: Caolán McNamara <caol...@redhat.com> Date: Wed Feb 7 16:51:32 2018 +0000 what matters is the availability of the last element, not the first Change-Id: I23d3abdbe62b735d66261fb337613da88cc4206b Reviewed-on: https://gerrit.libreoffice.org/49380 Reviewed-by: Michael Stahl <mst...@redhat.com> Tested-by: Michael Stahl <mst...@redhat.com> diff --git a/vcl/source/fontsubset/sft.cxx b/vcl/source/fontsubset/sft.cxx index 28713f47dbd7..566226f1e1f0 100644 --- a/vcl/source/fontsubset/sft.cxx +++ b/vcl/source/fontsubset/sft.cxx @@ -2450,7 +2450,8 @@ void GetTTGlobalFontInfo(TrueTypeFont *ttf, TTGlobalFontInfo *info) info->symbolEncoded = (ttf->cmapType == CMAP_MS_Symbol); const sal_uInt8* table = getTable(ttf, O_OS2); - if (table) { + sal_uInt32 table_size = getTableSize(ttf, O_OS2); + if (table && table_size >= 42) { info->weight = GetUInt16(table, 4); info->width = GetUInt16(table, 6); @@ -2458,7 +2459,7 @@ void GetTTGlobalFontInfo(TrueTypeFont *ttf, TTGlobalFontInfo *info) * Microsoft old (78 bytes long) and Microsoft new (86 bytes long,) * Apple's documentation recommends looking at the table length. */ - if (getTableSize(ttf, O_OS2) > 68) { + if (table_size >= 78) { info->typoAscender = XUnits(UPEm,GetInt16(table, 68)); info->typoDescender = XUnits(UPEm, GetInt16(table, 70)); info->typoLineGap = XUnits(UPEm, GetInt16(table, 72)); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits