aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Coopersmith <alan.coopersmith@oracle.com>2015-02-06 15:54:00 -0800
committerMike DePaulo <mikedep333@gmail.com>2015-03-28 13:06:06 -0400
commitde7bfbf0e61cdbe5e5c094d8a237cdc87e8b1fc3 (patch)
tree82852fae0d65331752f85289e61d179cd5af5b09
parente195099b83a23182925f20028de3e9ea4fe64845 (diff)
downloadvcxsrv-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.c5
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