diff options
author | Alan Coopersmith <alan.coopersmith@oracle.com> | 2015-02-06 15:54:00 -0800 |
---|---|---|
committer | Alan Coopersmith <alan.coopersmith@oracle.com> | 2015-03-17 08:00:29 -0700 |
commit | 78c2e3d70d29698244f70164428bd2868c0ab34c (patch) | |
tree | 459e3eca2d643a4b39d8366f3b77f8b1356db90b /src/bitmap/bdfread.c | |
parent | 2deda9906480f9c8ae07b8c2a5510cc7e4c59a8e (diff) |
bdfReadCharacters: bailout if a char's bitmap cannot be read [CVE-2015-1803]
Previously would charge on ahead with a NULL pointer in ci->bits, and
then crash later in FontCharInkMetrics() trying to access the bits.
Found with afl-1.23b.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Julien Cristau <jcristau@debian.org>
Diffstat (limited to 'src/bitmap/bdfread.c')
-rw-r--r-- | src/bitmap/bdfread.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/bitmap/bdfread.c b/src/bitmap/bdfread.c index 6387908..1b29b81 100644 --- a/src/bitmap/bdfread.c +++ b/src/bitmap/bdfread.c @@ -458,7 +458,10 @@ bdfReadCharacters(FontFilePtr file, FontPtr pFont, bdfFileState *pState, ci->metrics.descent = -bb; ci->metrics.characterWidth = wx; ci->bits = NULL; - bdfReadBitmap(ci, file, bit, byte, glyph, scan, bitmapsSizes); + if (!bdfReadBitmap(ci, file, bit, byte, glyph, scan, bitmapsSizes)) { + bdfError("could not read bitmap for character '%s'\n", charName); + goto BAILOUT; + } ci++; ndx++; } else |