xserver-multidpi/glamor
Olivier Fourdan 69ab094a08 glamor: Avoid overflow between box32 and box16 box
glamor_compute_transform_clipped_regions() uses a temporary box32
internally which is copied back to a box16 to init the regions16,
thus causing a potential overflow.

If an overflow occurs, the given region is invalid and the pixmap
init region will fail.

Simply check that the coordinates won't overflow when copying back to
the box16, avoiding a crash later down the line in glamor.

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=101894
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Tested-by: Fabrice Bellet <fabrice@bellet.info>
Reviewed-by: Adam Jackson <ajax@redhat.com>
(cherry picked from commit 9869dcb349)
2017-09-25 15:34:10 -04:00
..
glamor_addtraps.c glamor: Remove _nf rendering functions 2015-03-24 12:01:39 -07:00
glamor_composite_glyphs.c glamor: Declare "pos" in the composite glyph GLSL 1.20 vertex shader 2016-08-23 12:59:55 +09:00
glamor_compositerects.c glamor: fix wrong offset on composite rectangles 2016-04-15 16:31:36 -04:00
glamor_context.h glamor: Replace glamor_get/put_context() with just glamor_make_current(). 2014-04-23 10:32:23 -07:00
glamor_copy.c glamor: Fix temporary pixmap coordinate offsets 2017-09-25 15:34:10 -04:00
glamor_core.c glamor: Replace "finish access" shader with texture swizzling. 2016-03-10 11:12:43 -05:00
glamor_dash.c glamor: Fix dashed line rendering. 2017-09-22 18:45:58 +02:00
glamor_debug.h glamor: Apply x-indent.sh. 2014-01-27 09:30:47 -08:00
glamor_egl_stubs.c glamor: Delay making pixmaps shareable until we need to. 2015-11-18 10:04:44 -08:00
glamor_egl.c glamor: Trust eglGetPlatformDisplayEXT if it exists 2017-01-11 15:03:34 -05:00
glamor_egl.h glamor: Trust eglGetPlatformDisplayEXT if it exists 2017-01-11 15:03:34 -05:00
glamor_eglmodule.c Fix files including xorg-server.h by mistake 2014-07-30 12:17:27 -07:00
glamor_fbo.c glamor: avoid a crash if texture allocation failed 2017-09-22 18:45:59 +02:00
glamor_font.c dix: Switch to the libXfont2 API (v2) 2016-07-18 15:25:59 -04:00
glamor_font.h glamor: store old fonts in double width textures. 2016-01-13 11:21:02 +10:00
glamor_glx.c glamor: Do the same MakeCurrent(None) for GLX as we do for EGL. 2014-04-23 10:32:32 -07:00
glamor_glyphblt.c glamor: Check glamor_set_destination_drawable() return value 2017-09-21 15:00:21 +02:00
glamor_gradient.c glamor: fix spelling mistakes 2016-09-25 10:40:08 -07:00
glamor_image.c glamor: Use glamor_prepare_access_box() for PutImage/GetImage fallback 2015-07-16 10:43:54 -07:00
glamor_largepixmap.c glamor: Avoid overflow between box32 and box16 box 2017-09-25 15:34:10 -04:00
glamor_lines.c glamor: Check glamor_set_destination_drawable() return value 2017-09-21 15:00:21 +02:00
glamor_picture.c glamor: Replace "finish access" shader with texture swizzling. 2016-03-10 11:12:43 -05:00
glamor_pixmap.c glamor: Move glamor_render.c pict handling to glamor_picture.c 2015-07-10 09:42:58 -07:00
glamor_points.c glamor: Check glamor_set_destination_drawable() return value 2017-09-21 15:00:21 +02:00
glamor_prepare.c glamor: make current in prepare paths 2015-07-16 10:57:00 -07:00
glamor_prepare.h glamor: Replace fallback preparation code 2014-06-15 22:02:40 +01:00
glamor_priv.h glamor: Fall back to software for CopyPlane if we need to 2016-09-28 12:52:05 -04:00
glamor_program.c glamor: Fix link failure on GLES2. 2016-09-29 09:11:12 -07:00
glamor_program.h glamor: Add support for CA rendering in a single pass. 2016-01-26 12:02:42 -08:00
glamor_rects.c glamor: Check glamor_set_destination_drawable() return value 2017-09-21 15:00:21 +02:00
glamor_render.c glamor: handle NULL source picture 2017-09-25 15:34:10 -04:00
glamor_segs.c glamor: Check glamor_set_destination_drawable() return value 2017-09-21 15:00:21 +02:00
glamor_spans.c glamor: Check glamor_set_destination_drawable() return value 2017-09-21 15:00:21 +02:00
glamor_sync.c glamor: Make glamor_sync_init work with --disable-xshmfence 2016-09-25 11:00:24 -07:00
glamor_text.c glamor: Translate solid text background region after clipping 2016-07-15 12:59:43 -04:00
glamor_transfer.c glamor: Preserve GL_RED bits in R channel when destination is GL_RED [v2] 2016-05-26 09:17:59 -07:00
glamor_transfer.h glamor: Add simple upload/download functions in glamor_transfer 2014-04-03 13:07:51 -07:00
glamor_transform.c glamor: glamor_set_destination_drawable() can fail 2017-09-21 15:00:18 +02:00
glamor_transform.h glamor: glamor_set_destination_drawable() can fail 2017-09-21 15:00:18 +02:00
glamor_trapezoid.c glamor: Remove _nf rendering functions 2015-03-24 12:01:39 -07:00
glamor_triangles.c glamor: Remove _nf rendering functions 2015-03-24 12:01:39 -07:00
glamor_utils.c Convert glamor & glx to new *allocarray functions 2015-04-21 16:58:08 -07:00
glamor_utils.h glamor: Store the actual EGL/GLX context pointer in lastGLContext 2017-09-25 15:34:10 -04:00
glamor_vbo.c glamor: Use vertex array objects 2016-01-21 06:49:40 +10:00
glamor_window.c glamor: Drop tracking of the last picture attached to pixmaps. 2015-07-10 09:42:58 -07:00
glamor_xv.c glamor: an FBO is not needed for Xv pixmaps 2017-09-25 15:34:10 -04:00
glamor.c glamor: Check for NULL pixmap in glamor_get_pixmap_texture() 2017-09-21 15:00:08 +02:00
glamor.h glamor: Add glamor_shareable_fd_from_pixmap() 2016-09-13 10:26:21 +02:00
Makefile.am glamor: Use eglGetPlatformDisplay{,EXT} if we can 2016-10-05 16:03:13 -04:00