xserver-multidpi/glx
Adam Jackson 68cfee97bc dix: Call SourceValidate before GetImage
This ensures that any prep work for the drawable we're about to read
from is already done before we call down to GetImage. This should be no
functional change as most of the callers with a non-trivial
SourceValidate are already wrapping GetImage and doing the equivalent
thing, but we'll be simplifying that shortly.

More importantly this ensures that if any of that prep work would
generate events - like automatic compositing flushing rendering to a
parent pixmap which then triggers damage - then it happens entirely
before we start writing the GetImage reply header.

Note that we do not do the same for GetSpans, but that's okay. The only
way to get to GetSpans is through miCopyArea or miCopyPlane - where the
callers must already call SourceValidate - or miGetImage - which this
commit now protects with SourceValidate.

Fixes: xorg/xserver#902
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
(cherry picked from commit 516e75dbb6)
2019-11-18 14:23:38 -05:00
..
Makefile.am glx: Add vndserver.h to the SDK 2018-02-28 12:56:36 -05:00
clientinfo.c glx: Can't mix declarations and code in X.org sources [CVE-2014-8098 pt. 9] 2014-12-09 11:27:26 -08:00
createcontext.c glx: check for indirect context in CreateContextAttribsARB() 2018-10-04 17:25:13 +02:00
extension_string.c glx: Enable GLX_ARB_create_context_no_error (v2) 2018-02-26 10:18:58 -05:00
extension_string.h glx: Enable GLX_ARB_create_context_no_error (v2) 2018-02-26 10:18:58 -05:00
glxbyteorder.h Rewrite the byte swapping macros. 2017-04-25 15:01:23 -07:00
glxcmds.c glx: Fix previous context validation in xorgGlxMakeCurrent 2019-08-21 15:01:15 -04:00
glxcmdsswap.c glx: Use vnd layer for dispatch (v4) 2018-02-14 17:04:44 -05:00
glxcontext.h glx: Large commands are context state, not client state 2018-02-14 17:04:48 -05:00
glxdrawable.h Add Windows-DRI extension 2016-09-15 20:10:29 +01:00
glxdri2.c glx: Fix indirect no-config contexts 2018-02-26 10:18:58 -05:00
glxdricommon.c glx: Do not call into Composite if it is disabled. 2018-04-10 14:37:47 -04:00
glxdricommon.h glx: remove unused systemTimeExtension 2017-09-08 11:23:35 -07:00
glxdriswrast.c dix: Call SourceValidate before GetImage 2019-11-18 14:23:38 -05:00
glxext.c glx: Require depth > 12 for GLX visuals 2018-04-24 14:36:04 -04:00
glxext.h glx: Large commands are context state, not client state 2018-02-14 17:04:48 -05:00
glxscreens.c glx: Do not call into Composite if it is disabled. 2018-04-10 14:37:47 -04:00
glxscreens.h glx: Use vnd layer for dispatch (v4) 2018-02-14 17:04:44 -05:00
glxserver.h glx: Enable GLX_ARB_create_context_no_error (v2) 2018-02-26 10:18:58 -05:00
glxutil.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
indirect_dispatch.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
indirect_dispatch.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
indirect_dispatch_swap.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
indirect_program.c glx: Remove True/False defines 2017-08-21 10:12:54 -04:00
indirect_reqsize.c glx: Pass remaining request length into ->varsize (v2) [CVE-2014-8098 8/8] 2014-12-08 18:09:50 -08:00
indirect_reqsize.h glx: Pass remaining request length into ->varsize (v2) [CVE-2014-8098 8/8] 2014-12-08 18:09:50 -08:00
indirect_size.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
indirect_size_get.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
indirect_size_get.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
indirect_table.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
indirect_table.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
indirect_texture_compression.c glx: Remove __glXReply 2017-06-20 16:39:23 -04:00
indirect_util.c glx: Remove __glXReply 2017-06-20 16:39:23 -04:00
indirect_util.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
meson.build meson: Apparently 1.2 is < 1.2.0 2019-11-05 08:12:03 -08:00
render2.c glx: Convert non-generated function pointer thunking 2013-12-10 08:02:42 -08:00
render2swap.c glx: Convert non-generated function pointer thunking 2013-12-10 08:02:42 -08:00
renderpix.c glx: convert to direct GL dispatch (v2) 2013-10-29 12:29:16 -04:00
renderpixswap.c glx: convert to direct GL dispatch (v2) 2013-10-29 12:29:16 -04:00
rensize.c glx: Synchronize Xserver glx/rensize.c with mesa src/glx/compsize.c 2015-10-06 11:15:31 -04:00
single2.c glx: Remove some unused stuff from glxserver.h 2017-08-21 10:13:04 -04:00
single2swap.c glx: Remove __glXReply 2017-06-20 16:39:23 -04:00
singlepix.c glx: Remove __glXReply 2017-06-20 16:39:23 -04:00
singlepixswap.c glx: Remove __glXReply 2017-06-20 16:39:23 -04:00
singlesize.c glx: convert to direct GL dispatch (v2) 2013-10-29 12:29:16 -04:00
singlesize.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
swap_interval.c glx: Length-checking for non-generated vendor private requests [CVE-2014-8098 6/8] 2014-12-08 18:09:50 -08:00
unpack.h glx: Remove __glXReply 2017-06-20 16:39:23 -04:00
vnd_dispatch_stubs.c glx: Import glxvnd server module (v2) 2018-02-14 17:04:35 -05:00
vndcmds.c GLX: Use the sending client for looking up XID's 2019-08-13 14:53:55 -07:00
vndext.c GLX: Set GlxServerExports::{major,minor}Version 2019-08-13 14:53:55 -07:00
vndserver.h GLX: Add a function to change a clients vendor list. 2019-08-13 14:53:55 -07:00
vndservermapping.c GLX: Add a function to change a clients vendor list. 2019-08-13 14:53:55 -07:00
vndservervendor.c glx: Import glxvnd server module (v2) 2018-02-14 17:04:35 -05:00
vndservervendor.h glx: Import glxvnd server module (v2) 2018-02-14 17:04:35 -05:00
xfont.c glx: Use vnd layer for dispatch (v4) 2018-02-14 17:04:44 -05:00