From 8833e0d3c3798264372ef8403f1379e7a5954cc0 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 30 Jun 2005 19:11:58 +0000 Subject: [PATCH] Avoid infinite loop if a mask is zero. (#309222, David Saxton) 2005-06-30 Matthias Clasen * gdk/x11/gdkvisual-x11.c (gdk_visual_decompose_mask): Avoid infinite loop if a mask is zero. (#309222, David Saxton) --- ChangeLog | 3 +++ ChangeLog.pre-2-10 | 3 +++ ChangeLog.pre-2-8 | 3 +++ gdk/x11/gdkvisual-x11.c | 6 ++++++ 4 files changed, 15 insertions(+) diff --git a/ChangeLog b/ChangeLog index 385763a09e..2ac66d0ef3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2005-06-30 Matthias Clasen + * gdk/x11/gdkvisual-x11.c (gdk_visual_decompose_mask): Avoid + infinite loop if a mask is zero. (#309222, David Saxton) + * gtk/gtktreemodelfilter.c (gtk_tree_model_filter_fetch_child): Clarify the code, gcc 4 complains about predecrement in MAX(). diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 385763a09e..2ac66d0ef3 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,5 +1,8 @@ 2005-06-30 Matthias Clasen + * gdk/x11/gdkvisual-x11.c (gdk_visual_decompose_mask): Avoid + infinite loop if a mask is zero. (#309222, David Saxton) + * gtk/gtktreemodelfilter.c (gtk_tree_model_filter_fetch_child): Clarify the code, gcc 4 complains about predecrement in MAX(). diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 385763a09e..2ac66d0ef3 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,5 +1,8 @@ 2005-06-30 Matthias Clasen + * gdk/x11/gdkvisual-x11.c (gdk_visual_decompose_mask): Avoid + infinite loop if a mask is zero. (#309222, David Saxton) + * gtk/gtktreemodelfilter.c (gtk_tree_model_filter_fetch_child): Clarify the code, gcc 4 complains about predecrement in MAX(). diff --git a/gdk/x11/gdkvisual-x11.c b/gdk/x11/gdkvisual-x11.c index 94d3687a11..b796407986 100644 --- a/gdk/x11/gdkvisual-x11.c +++ b/gdk/x11/gdkvisual-x11.c @@ -618,6 +618,12 @@ gdk_visual_decompose_mask (gulong mask, *shift = 0; *prec = 0; + if (mask == 0) + { + g_warning ("Mask is 0 in visual. Server bug ?"); + return; + } + while (!(mask & 0x1)) { (*shift)++; -- GitLab