XLibre Xserver
Go to file
Olivier Fourdan 8805a48ed3 glamor: avoid a crash if texture allocation failed
Texture creation in _glamor_create_tex() can fail if a GL_OUT_OF_MEMORY
is raised, in which case the texture returned is zero.

But the texture value is not checked in glamor_create_fbo() and glamor
will abort in glamor_pixmap_ensure_fb() because the fbo->tex is 0:

  Truncated backtrace:
  Thread no. 1 (10 frames)
   #4 glamor_pixmap_ensure_fb at glamor_fbo.c:57
   #5 glamor_create_fbo_from_tex at glamor_fbo.c:112
   #6 glamor_create_fbo at glamor_fbo.c:159
   #7 glamor_create_fbo_array at glamor_fbo.c:210
   #8 glamor_create_pixmap at glamor.c:226
   #9 compNewPixmap at compalloc.c:536
   #10 compAllocPixmap at compalloc.c:605
   #11 compCheckRedirect at compwindow.c:167
   #12 compRealizeWindow at compwindow.c:267
   #13 RealizeTree at window.c:2617

Check the value returned by _glamor_create_tex() in glamor_create_fbo()
and return NULL in the texture is zero.

All callers of glamor_create_fbo() actually check the returned value and
will use a fallback code path if it's NULL.

Please cherry-pick this to active stable branches.

Bugzilla: https://bugzilla.redhat.com/1433305
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
2017-03-17 13:17:31 -07:00
Xext xinerama: Implement graphics exposures for window->pixmap copies (v4) 2017-03-15 16:16:36 -04:00
Xi dispatch: Mark swapped dispatch as _X_COLD 2017-03-01 10:16:20 -05:00
composite dispatch: Mark swapped dispatch as _X_COLD 2017-03-01 10:16:20 -05:00
config ddx: add new call to purge input devices that weren't added 2016-10-26 15:35:07 +10:00
damageext dispatch: Mark swapped dispatch as _X_COLD 2017-03-01 10:16:20 -05:00
dbe dispatch: Mark swapped dispatch as _X_COLD 2017-03-01 10:16:20 -05:00
dix dispatch: Mark swapped dispatch as _X_COLD 2017-03-01 10:16:20 -05:00
doc Remove readmask from screen block/wakeup handler 2016-07-18 15:27:51 -04:00
dri3 dispatch: Mark swapped dispatch as _X_COLD 2017-03-01 10:16:20 -05:00
exa fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
fb fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
glamor glamor: avoid a crash if texture allocation failed 2017-03-17 13:17:31 -07:00
glx glx: Move Composite's synthetic visuals to a different select group 2017-01-25 11:27:33 -05:00
hw xfree86: Remove 24bpp pixmap format support (v2) 2017-03-17 15:14:38 -04:00
include fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
m4 Add ax_pthread.m4 to m4/ 2016-05-29 19:20:51 -07:00
man Xserver.man: document more transports for -nolisten & -listen options 2015-10-28 14:16:28 -04:00
mi fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
miext damage: Validate source pictures bound to windows before unwrapping 2017-02-08 12:54:47 -05:00
os os: Squash missing declaration warning for timingsafe_memcmp 2017-03-02 17:20:30 -05:00
present dispatch: Mark swapped dispatch as _X_COLD 2017-03-01 10:16:20 -05:00
pseudoramiX Convert top level extensions to new *allocarray functions 2015-04-21 16:57:08 -07:00
randr dispatch: Mark swapped dispatch as _X_COLD 2017-03-01 10:16:20 -05:00
record dispatch: Mark swapped dispatch as _X_COLD 2017-03-01 10:16:20 -05:00
render render: Fix out of boundary heap access 2017-03-13 16:54:20 -04:00
test test: Fix distcheck failures 2017-03-14 12:28:24 -04:00
xfixes dispatch: Mark swapped dispatch as _X_COLD 2017-03-01 10:16:20 -05:00
xkb dispatch: Mark swapped dispatch as _X_COLD 2017-03-01 10:16:20 -05:00
.dir-locals.el Add .dir-locals.el 2013-08-17 12:17:36 +02:00
.gitignore .gitignore: Add new autotools file 'test-driver' 2014-04-21 13:41:42 -07:00
COPYING modesetting: Merge modesetting's COPYING into the xserver's. 2014-09-15 12:46:02 -07:00
Makefile.am DIST_SUBDIRS needs to include glamor, even if it isn't built 2014-02-13 15:25:56 -08:00
README packaging: provide a default README file #24206 2010-01-27 14:00:17 -08:00
autogen.sh autogen: Set a default subject prefix for patches 2016-02-08 17:41:38 -05:00
configure.ac glamor: use drmGetDeviceNameFromFD2 when available 2017-03-07 16:00:27 -05:00
devbook.am doc: Create a script to filter xmlto output 2015-01-05 14:24:06 -08:00
docbook.am docbook.am: embed css styles inside the HTML HEAD element 2011-09-21 14:07:49 -07:00
fix-miregion Change region implementation names to eliminate the 'mi' prefix 2010-06-05 17:47:32 -07:00
fix-miregion-private Change region implementation names to eliminate the 'mi' prefix 2010-06-05 17:47:32 -07:00
fix-patch-whitespace Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07:00
fix-region Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07:00
manpages.am Xorg: Add a suid root wrapper 2014-03-12 08:50:05 +01:00
xorg-server.m4 macros: clarify documentation 2012-11-05 13:24:57 -06:00
xorg-server.pc.in xfree86: link modules against Xorg symbols on Cygwin 2012-04-05 21:57:07 -05:00
xserver.ent.in doc: relocate xserver.ent in the package root directory 2011-05-14 11:22:26 -07:00

					X Server

The X server accepts requests from client applications to create windows,
which are (normally rectangular) "virtual screens" that the client program
can draw into.

Windows are then composed on the actual screen by the X server
(or by a separate composite manager) as directed by the window manager,
which usually communicates with the user via graphical controls such as buttons
and draggable titlebars and borders.

For a comprehensive overview of X Server and X Window System, consult the
following article:
http://en.wikipedia.org/wiki/X_server

All questions regarding this software should be directed at the
Xorg mailing list:

        http://lists.freedesktop.org/mailman/listinfo/xorg

Please submit bug reports to the Xorg bugzilla:

        https://bugs.freedesktop.org/enter_bug.cgi?product=xorg

The master development code repository can be found at:

        git://anongit.freedesktop.org/git/xorg/xserver

        http://cgit.freedesktop.org/xorg/xserver

For patch submission instructions, see:

	http://www.x.org/wiki/Development/Documentation/SubmittingPatches

For more information on the git code manager, see:

        http://wiki.x.org/wiki/GitPage