From 87ea5760f86eb60840e6e2c10012915952df5377 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Mon, 10 May 2010 11:46:25 -0700 Subject: Check pixmap allocation return value when creating glyphs The driver may decide that the pixmap is too large or something and fail to allocate a pixmap; not checking would lead to a segfault. Signed-off-by: Keith Packard Reviewed-by: Jamey Sharp --- render/render.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'render') diff --git a/render/render.c b/render/render.c index bba1ce1e6..9aabcfb20 100644 --- a/render/render.c +++ b/render/render.c @@ -1140,6 +1140,12 @@ ProcRenderAddGlyphs (ClientPtr client) width, height, depth, CREATE_PIXMAP_USAGE_GLYPH_PICTURE); + if (!pDstPix) + { + err = BadAlloc; + goto bail; + } + GlyphPicture (glyph)[screen] = pDst = CreatePicture (0, &pDstPix->drawable, glyphSet->format, @@ -1149,6 +1155,7 @@ ProcRenderAddGlyphs (ClientPtr client) /* The picture takes a reference to the pixmap, so we drop ours. */ (pScreen->DestroyPixmap) (pDstPix); + pDstPix = NULL; if (! pDst) { -- cgit v1.2.3