From dced42a6801ea0f7ff9fa9f7aa3c7b2a10103884 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Mon, 6 Jul 2015 22:26:14 +0100 Subject: [PATCH] xlib: Avoid using uninitialised variable on impossible error path In commit f6843d5cbb79c35f7b331ac31c4a55c9574928fc Author: Arpit Jain Date: Mon Jul 6 14:13:06 2015 -0700 xlib: Fix deferencing of uninitialised 'display' the common error + clenaup path was clumsily fixed to use the right variable after the error didn't set the local display variable. Signed-off-by: Chris Wilson --- src/cairo-xlib-render-compositor.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cairo-xlib-render-compositor.c b/src/cairo-xlib-render-compositor.c index 8a1ec7bd7..861ebe638 100644 --- a/src/cairo-xlib-render-compositor.c +++ b/src/cairo-xlib-render-compositor.c @@ -965,7 +965,7 @@ _cairo_xlib_font_fini (cairo_scaled_font_private_t *abstract_private, cairo_list_del (&priv->link); status = _cairo_xlib_display_acquire (priv->device, &display); - if (status) + if (unlikely (status)) /* this should be impossible but leak just in case */ goto BAIL; for (i = 0; i < NUM_GLYPHSETS; i++) { @@ -978,7 +978,7 @@ _cairo_xlib_font_fini (cairo_scaled_font_private_t *abstract_private, cairo_device_release (&display->base); BAIL: - cairo_device_destroy (&display->base); + cairo_device_destroy (priv->device); free (priv); }