Olivier Fourdan
f43207c1c4
glamor: restore vfunc handlers on init failure
...
In glamor_init(), if the minimum requirements are not met, glamor may
fail after setting up its own CloseScreen() and DestroyPixmap()
routines, leading to a crash when either of the two routines is called
if glamor failed to complete its initialization, e.g:
(EE) Backtrace:
(EE) 0: Xwayland (OsSigHandler+0x29)
(EE) 1: /lib64/libpthread.so.0 (__restore_rt+0x0)
(EE) 2: Xwayland (glamor_sync_close+0x2a)
(EE) 3: Xwayland (glamor_close_screen+0x52)
(EE) 4: Xwayland (CursorCloseScreen+0x88)
(EE) 5: Xwayland (AnimCurCloseScreen+0xa4)
(EE) 6: Xwayland (present_close_screen+0x42)
(EE) 7: Xwayland (dix_main+0x4f9)
(EE) 8: /lib64/libc.so.6 (__libc_start_main+0xf1)
(EE) 9: Xwayland (_start+0x2a)
Restore the previous CloseScreen() and DestroyPixmap() vfunc handlers in
case of failure when checking for the minimum requirements, so that if
any of the requirement is not met we don't leave the CloseScreen() and
DestroyPixmap() from glamor handlers in place.
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1390018
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
2016-11-30 09:45:52 +01:00
..
glamor.c
glamor: restore vfunc handlers on init failure
2016-11-30 09:45:52 +01:00
glamor.h
glamor: Add glamor_shareable_fd_from_pixmap()
2016-09-13 10:26:21 +02: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 pixmap offset for bitplane in glamor_copy_fbo_cpu
2016-10-05 13:57:13 -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: Preserve GL_RED bits in R channel when destination is GL_RED [v2]
2016-05-26 09:17:59 -07:00
glamor_debug.h
glamor: Apply x-indent.sh.
2014-01-27 09:30:47 -08:00
glamor_egl.c
glamor: Use eglGetPlatformDisplay{,EXT} if we can
2016-10-05 16:03:13 -04:00
glamor_egl.h
glamor: don't look for non-existing EGL_KHR_platform_base
2016-10-25 13:04:48 -04:00
glamor_egl_stubs.c
glamor: Delay making pixmaps shareable until we need to.
2015-11-18 10:04:44 -08:00
glamor_eglmodule.c
Fix files including xorg-server.h by mistake
2014-07-30 12:17:27 -07:00
glamor_fbo.c
glamor: Remove the FBO cache.
2016-07-18 15:22:04 -04: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: Simplify the pixmap box looping.
2016-01-29 18:13:09 -08: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: fix spelling mistakes
2016-09-25 10:40:08 -07:00
glamor_lines.c
glamor: Simplify the pixmap box looping.
2016-01-29 18:13:09 -08: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: Simplify the pixmap box looping.
2016-01-29 18:13:09 -08: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: Simplify the pixmap box looping.
2016-01-29 18:13:09 -08:00
glamor_render.c
glamor: Remove #if 0-ed picture dumping code.
2016-09-29 09:11:11 -07:00
glamor_segs.c
glamor: Simplify the pixmap box looping.
2016-01-29 18:13:09 -08:00
glamor_spans.c
glamor: spans: fixup wrong count on glDrawArrays
2016-09-30 08:46:03 -07: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: Preserve GL_RED bits in R channel when destination is GL_RED [v2]
2016-05-26 09:17:59 -07:00
glamor_transform.h
glamor: Preserve GL_RED bits in R channel when destination is GL_RED [v2]
2016-05-26 09:17:59 -07: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: Remove #if 0-ed picture dumping code.
2016-09-29 09:11:11 -07: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: Fix XvPutImage when src_y != 0
2016-03-08 13:05:38 -05:00
Makefile.am
glamor: Use eglGetPlatformDisplay{,EXT} if we can
2016-10-05 16:03:13 -04:00