From b138c36c1137b8cc7111d88b7debbd15d9b59fe2 Mon Sep 17 00:00:00 2001 From: Akihiro Sagawa Date: Tue, 1 Oct 2013 22:03:16 +0900 Subject: [PATCH] gdi32: Fix empty glyph handling in the dib driver. --- dlls/gdi32/dibdrv/graphics.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dlls/gdi32/dibdrv/graphics.c b/dlls/gdi32/dibdrv/graphics.c index f3aaeb6a738..2c865c02250 100644 --- a/dlls/gdi32/dibdrv/graphics.c +++ b/dlls/gdi32/dibdrv/graphics.c @@ -694,13 +694,14 @@ static struct cached_glyph *cache_glyph_bitmap( HDC hdc, struct cached_font *fon if (ret != GDI_ERROR) break; } if (ret == GDI_ERROR) return NULL; + if (!ret) metrics.gmBlackBoxX = metrics.gmBlackBoxY = 0; /* empty glyph */ bit_count = get_glyph_depth( font->aa_flags ); stride = get_dib_stride( metrics.gmBlackBoxX, bit_count ); size = metrics.gmBlackBoxY * stride; glyph = HeapAlloc( GetProcessHeap(), 0, FIELD_OFFSET( struct cached_glyph, bits[size] )); if (!glyph) return NULL; - if (!ret) goto done; /* zero-size glyph */ + if (!size) goto done; /* empty glyph */ if (bit_count == 8) pad = padding[ metrics.gmBlackBoxX % 4 ];