diff options
author | Alan Coopersmith <alan.coopersmith@oracle.com> | 2015-02-06 15:54:00 -0800 |
---|---|---|
committer | Mike DePaulo <mikedep333@gmail.com> | 2015-03-28 13:06:06 -0400 |
commit | de7bfbf0e61cdbe5e5c094d8a237cdc87e8b1fc3 (patch) | |
tree | 82852fae0d65331752f85289e61d179cd5af5b09 | |
parent | e195099b83a23182925f20028de3e9ea4fe64845 (diff) | |
download | vcxsrv-de7bfbf0e61cdbe5e5c094d8a237cdc87e8b1fc3.tar.gz vcxsrv-de7bfbf0e61cdbe5e5c094d8a237cdc87e8b1fc3.tar.bz2 vcxsrv-de7bfbf0e61cdbe5e5c094d8a237cdc87e8b1fc3.zip |
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>
(cherry picked from commit 78c2e3d70d29698244f70164428bd2868c0ab34c)
-rw-r--r-- | libXfont/src/bitmap/bdfread.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libXfont/src/bitmap/bdfread.c b/libXfont/src/bitmap/bdfread.c index 638790854..1b29b81c9 100644 --- a/libXfont/src/bitmap/bdfread.c +++ b/libXfont/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 |