glimagesink: Check if context creation failed before trying to use it
authorSebastian Dröge <sebastian@centricular.com>
Mon, 19 May 2014 10:25:51 +0000 (12:25 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Mon, 19 May 2014 10:25:51 +0000 (12:25 +0200)
Otherwise we will cause assertions everywhere by passing NULL to functions
and eventually crash when dereferencing a NULL pointer.

https://bugzilla.gnome.org/show_bug.cgi?id=730069

ext/gl/gstglimagesink.c

index 1dbc5ec..b2a1d07 100644 (file)
@@ -388,6 +388,8 @@ _ensure_gl_setup (GstGLImageSink * gl_sink)
     GstGLWindow *window;
 
     gl_sink->context = gst_gl_context_new (gl_sink->display);
+    if (!gl_sink->context)
+      goto context_creation_error;
 
     window = gst_gl_context_get_window (gl_sink->context);
 
@@ -421,6 +423,13 @@ _ensure_gl_setup (GstGLImageSink * gl_sink)
 
   return TRUE;
 
+context_creation_error:
+  {
+    GST_ELEMENT_ERROR (gl_sink, RESOURCE, NOT_FOUND,
+        ("Failed to create GL context"), (NULL));
+    return FALSE;
+  }
+
 context_error:
   {
     GST_ELEMENT_ERROR (gl_sink, RESOURCE, NOT_FOUND, ("%s", error->message),