diff options
Diffstat (limited to 'Build/source/libs/poppler/poppler-src/fofi/FoFiTrueType.cc')
-rw-r--r-- | Build/source/libs/poppler/poppler-src/fofi/FoFiTrueType.cc | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/Build/source/libs/poppler/poppler-src/fofi/FoFiTrueType.cc b/Build/source/libs/poppler/poppler-src/fofi/FoFiTrueType.cc index f1a15e004da..2bbf04680dd 100644 --- a/Build/source/libs/poppler/poppler-src/fofi/FoFiTrueType.cc +++ b/Build/source/libs/poppler/poppler-src/fofi/FoFiTrueType.cc @@ -16,10 +16,10 @@ // Copyright (C) 2006 Takashi Iwai <tiwai@suse.de> // Copyright (C) 2007 Koji Otani <sho@bbr.jp> // Copyright (C) 2007 Carlos Garcia Campos <carlosgc@gnome.org> -// Copyright (C) 2008, 2009, 2012, 2014-2016 Albert Astals Cid <aacid@kde.org> +// Copyright (C) 2008, 2009, 2012, 2014-2017 Albert Astals Cid <aacid@kde.org> // Copyright (C) 2008 Tomas Are Haavet <tomasare@gmail.com> // Copyright (C) 2012 Suzuki Toshiya <mpsuzuki@hiroshima-u.ac.jp> -// Copyright (C) 2012 Adrian Johnson <ajohnson@redneon.com> +// Copyright (C) 2012, 2017 Adrian Johnson <ajohnson@redneon.com> // Copyright (C) 2014 Thomas Freitag <Thomas.Freitag@alfa.de> // Copyright (C) 2015 Aleksei Volkov <Aleksei Volkov> // Copyright (C) 2015, 2016 William Bader <williambader@hotmail.com> @@ -37,6 +37,7 @@ #include <stdlib.h> #include <string.h> +#include <limits.h> #include <algorithm> #include "goo/gtypes.h" #include "goo/gmem.h" @@ -451,7 +452,7 @@ int FoFiTrueType::mapNameToGID(char *name) { GBool FoFiTrueType::getCFFBlock(char **start, int *length) { int i; - if (!openTypeCFF) { + if (!openTypeCFF || !tables) { return gFalse; } i = seekTable("CFF "); @@ -1307,8 +1308,10 @@ Guint FoFiTrueType::computeTableChecksum(Guchar *data, int length) { switch (length & 3) { case 3: word |= (data[i+2] & 0xff) << 8; + // fallthrough case 2: word |= (data[i+1] & 0xff) << 16; + // fallthrough case 1: word |= (data[i ] & 0xff) << 24; break; |