From: Olivier Fourdan Date: Fri, 3 Apr 2015 15:51:57 +0000 (+0200) Subject: x11/gl: Fix use after free X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~24^2~9943 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=49ec67c7eb52a8b20a7a18c37c63020c5612df0e;p=gtk4.git x11/gl: Fix use after free https://bugzilla.gnome.org/show_bug.cgi?id=747305 Signed-off-by: Olivier Fourdan --- diff --git a/gdk/x11/gdkglcontext-x11.c b/gdk/x11/gdkglcontext-x11.c index 9bf8cc37af..c86cbd5a69 100644 --- a/gdk/x11/gdkglcontext-x11.c +++ b/gdk/x11/gdkglcontext-x11.c @@ -309,9 +309,9 @@ glx_pixmap_get (cairo_surface_t *surface, guint texture_target) { Display *display = cairo_xlib_surface_get_display (surface); Screen *screen = cairo_xlib_surface_get_screen (surface); - Visual *visual = cairo_xlib_surface_get_visual (surface);; + Visual *visual = cairo_xlib_surface_get_visual (surface); GdkGLXPixmap *glx_pixmap; - GLXFBConfig *fbconfigs; + GLXFBConfig *fbconfigs, config; int nfbconfigs; XVisualInfo *visinfo; VisualID visualid; @@ -393,6 +393,7 @@ glx_pixmap_get (cairo_surface_t *surface, guint texture_target) if (value == TRUE) y_inverted = TRUE; + config = fbconfigs[i]; break; } @@ -407,7 +408,7 @@ glx_pixmap_get (cairo_surface_t *surface, guint texture_target) glx_pixmap = g_slice_new0 (GdkGLXPixmap); glx_pixmap->y_inverted = y_inverted; glx_pixmap->display = display; - glx_pixmap->drawable = glXCreatePixmap (display, fbconfigs[i], + glx_pixmap->drawable = glXCreatePixmap (display, config, cairo_xlib_surface_get_drawable (surface), pixmap_attributes);