From dc516c4e99c45ee4433062f473665e59a06de546 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Thu, 16 Jul 2015 22:21:18 -0500 Subject: [PATCH] Avoid SEGV in gs_fade_reset On Fedora 21, when run in tigervnc-server built with xorg-x11-server-1.16, but not on Xorg nor on Fedora 22 with tigervnc-server built with 1.17, it appears that nothing provides the necessary functionality for a fade, but (*fade_finish) is called without checking. Signed-off-by: Yaakov Selkowitz --- src/gs-fade.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gs-fade.c b/src/gs-fade.c index 68e596f..03e02cf 100644 --- a/src/gs-fade.c +++ b/src/gs-fade.c @@ -835,8 +835,10 @@ gs_fade_reset (GSFade *fade) gs_fade_set_alpha (fade, fade->priv->current_alpha); - for (i = 0; i < fade->priv->num_screens; i++) - fade->priv->screen_priv[i].fade_finish (fade, i); + for (i = 0; i < fade->priv->num_screens; i++) { + if (fade->priv->screen_priv[i].fade_type != FADE_TYPE_NONE) + fade->priv->screen_priv[i].fade_finish (fade, i); + } } static void -- 2.1.0