diff options
author | David Venz <david.venz@gmail.com> | 2012-08-25 12:06:22 -0700 |
---|---|---|
committer | Alan Coopersmith <alan.coopersmith@oracle.com> | 2012-08-29 22:03:42 -0700 |
commit | 4176bffd0261d7734617dc73ae6013e86dbb841d (patch) | |
tree | 8feadca2db01d56069aa39454cad0b8c8acdd09a | |
parent | 53564df46e7f8e443c46b00080ea46c878c34263 (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.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -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); |