mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-08 03:18:05 +02:00
XCB: Check screen size in boilerplate
Trying to create a window for drawing that is larger than the available screen space is a bad idea. When the test finishes and tries to grab the resulting image from the X server, the window's area that is outside of the screen will have undefined content. Signed-off-by: Uli Schlachter <psychon@znc.in> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
daaef055b5
commit
6383e1442c
1 changed files with 12 additions and 0 deletions
|
|
@ -248,6 +248,12 @@ _cairo_boilerplate_xcb_create_window (const char *name,
|
|||
xtc->surface = NULL;
|
||||
|
||||
s = xcb_setup_roots_iterator (xcb_get_setup (c)).data;
|
||||
if (width > s->width_in_pixels || height > s->height_in_pixels) {
|
||||
xcb_disconnect (c);
|
||||
free (xtc);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
xtc->is_pixmap = FALSE;
|
||||
xtc->drawable = xcb_generate_id (c);
|
||||
cookie = xcb_create_window_checked (c,
|
||||
|
|
@ -319,6 +325,12 @@ _cairo_boilerplate_xcb_create_window_db (const char *name,
|
|||
xtc->surface = NULL;
|
||||
|
||||
s = xcb_setup_roots_iterator (xcb_get_setup (c)).data;
|
||||
if (width > s->width_in_pixels || height > s->height_in_pixels) {
|
||||
xcb_disconnect (c);
|
||||
free (xtc);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
xtc->is_pixmap = FALSE;
|
||||
xtc->drawable = xcb_generate_id (c);
|
||||
cookie = xcb_create_window_checked (c,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue