From fb07657f28f8d172ab46f384d804f16c1fa8e23b Mon Sep 17 00:00:00 2001
From: Olivier Fourdan <fourdan.olivier@wanadoo.fr>
Date: Sun, 11 Sep 2005 20:45:12 +0000
Subject: [PATCH] Don't follow NET_CURRENT_DESKTOP event if specified value is
 out of range (fix bug #1140)

(Old svn revision: 17558)
---
 src/client.c | 1 -
 src/events.c | 4 ++--
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/client.c b/src/client.c
index 119e16f3f..cec9818b6 100644
--- a/src/client.c
+++ b/src/client.c
@@ -2019,7 +2019,6 @@ clientSetWorkspaceSingle (Client * c, int ws)
 
     TRACE ("entering clientSetWorkspaceSingle");
 
-    
     screen_info = c->screen_info;
     display_info = screen_info->display_info;
 
diff --git a/src/events.c b/src/events.c
index d158b5e9f..840157ccb 100644
--- a/src/events.c
+++ b/src/events.c
@@ -1947,8 +1947,8 @@ handleClientMessage (DisplayInfo *display_info, XClientMessageEvent * ev)
         if (((ev->message_type == display_info->atoms[WIN_WORKSPACE]) || 
              (ev->message_type == display_info->atoms[NET_CURRENT_DESKTOP])) && (ev->format == 32))
         {
-            TRACE ("root has received a win_workspace or a net_current_desktop event");
-            if (ev->data.l[0] != screen_info->current_ws)
+            TRACE ("root has received a win_workspace or a net_current_desktop event %i", ev->data.l[0]);
+            if ((ev->data.l[0] >= 0) && (ev->data.l[0] < screen_info->workspace_count) && (ev->data.l[0] != screen_info->current_ws))
             {
                 workspaceSwitch (screen_info, ev->data.l[0], NULL);
             }
-- 
GitLab