~ubuntu-branches/ubuntu/precise/x11-utils/precise-proposed

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Index: x11-utils-7.6+4/xwininfo/dsimple.c
===================================================================
--- x11-utils-7.6+4.orig/xwininfo/dsimple.c	2011-10-21 16:00:11.000000000 +1000
+++ x11-utils-7.6+4/xwininfo/dsimple.c	2012-07-24 16:20:47.053575611 +1000
@@ -120,6 +120,12 @@
     if (screen) {
 	/* find our screen */
 	const xcb_setup_t *setup = xcb_get_setup(*dpy);
+	int screen_count = xcb_setup_roots_length(setup);
+	if (screen_count <= screen_number)
+	{
+		Fatal_Error ("unable to access screen %d, max is %d",
+				screen_number, screen_count-1 );
+	}
 	xcb_screen_iterator_t screen_iter = xcb_setup_roots_iterator(setup);
 
 	for (i = 0; i < screen_number; i++)