diff options
author | Khaled Hosny <khaledhosny@eglug.org> | 2017-10-13 20:58:08 +0200 |
---|---|---|
committer | Adolfo Jayme Barrientos <fitojb@ubuntu.com> | 2017-10-14 01:10:44 +0200 |
commit | e056ff15aa371dca9b887471846a537e13c4214c (patch) | |
tree | deb97fc70f93196e7b74bd7a10413b1558322366 | |
parent | 2bb31e9ff5f5433f29ee02bc673193bc1093e0fe (diff) |
tdf#107605: Fix reading version 0 OS/2 font table
The version 0 table os exactly 78 bytes since it does not have any of
the extra fields from the later versions.
Change-Id: Ie2e478bdefb201b988dc0844240d4ff193d66583
Reviewed-on: https://gerrit.libreoffice.org/43375
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
-rw-r--r-- | vcl/source/fontsubset/sft.cxx | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/vcl/source/fontsubset/sft.cxx b/vcl/source/fontsubset/sft.cxx index 713494c640b3..0f031d055ae3 100644 --- a/vcl/source/fontsubset/sft.cxx +++ b/vcl/source/fontsubset/sft.cxx @@ -2413,7 +2413,7 @@ void GetTTFontMterics(const std::vector<uint8_t>& hhea, * FIXME: horribly outdated comment and horrible code that uses hard-coded * offsets to read the table. */ - if (os2.size() > 76 + 2) + if (os2.size() >= 76 + 2) { info->fsSelection = GetUInt16(os2.data(), 62); info->typoAscender = GetInt16(os2.data(), 68); @@ -2423,7 +2423,7 @@ void GetTTFontMterics(const std::vector<uint8_t>& hhea, info->winDescent = GetUInt16(os2.data(), 76); } - if (hhea.size() > 8 + 2) { + if (hhea.size() >= 8 + 2) { info->ascender = GetInt16(hhea.data(), 4); info->descender = GetInt16(hhea.data(), 6); info->linegap = GetInt16(hhea.data(), 8); |