summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Venz <david.venz@gmail.com>2012-08-25 12:06:22 -0700
committerAlan Coopersmith <alan.coopersmith@oracle.com>2012-08-29 22:03:42 -0700
commit4176bffd0261d7734617dc73ae6013e86dbb841d (patch)
tree8feadca2db01d56069aa39454cad0b8c8acdd09a
parent53564df46e7f8e443c46b00080ea46c878c34263 (diff)
Bug 53242 - xwininfo segfaults on invalid screen
Check number of screen entries before iterating past the end of the list Reviewed-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
-rw-r--r--dsimple.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/dsimple.c b/dsimple.c
index e6d320e..51fb231 100644
--- a/dsimple.c
+++ b/dsimple.c
@@ -121,6 +121,12 @@ void Setup_Display_And_Screen (
/* find our screen */
const xcb_setup_t *setup = xcb_get_setup(*dpy);
xcb_screen_iterator_t screen_iter = xcb_setup_roots_iterator(setup);
+ 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 );
+ }
for (i = 0; i < screen_number; i++)
xcb_screen_next(&screen_iter);