glbasefilter: avoid segfault when gl platform is not available
authorAnton Obzhirov <obzhirov@yahoo.co.uk>
Tue, 31 Mar 2015 16:10:45 +0000 (17:10 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 9 Dec 2017 19:31:58 +0000 (19:31 +0000)
https://bugzilla.gnome.org/show_bug.cgi?id=747124

gst-libs/gst/gl/gstglbasefilter.c

index e61d7f77d68357858f9d95cd276fffd755071921..838842d8dcfdc35d021ddaadaf941c9b94565de6 100644 (file)
@@ -342,6 +342,9 @@ gst_gl_base_filter_decide_allocation (GstBaseTransform * trans,
           gst_gl_display_get_gl_context_for_thread (filter->display, NULL);
       if (!filter->context) {
         filter->context = gst_gl_context_new (filter->display);
+        if (!filter->context)
+          goto context_null_error;
+
         if (!gst_gl_context_create (filter->context,
                 filter->priv->other_context, &error))
           goto context_error;
@@ -362,6 +365,12 @@ context_error:
         (NULL));
     return FALSE;
   }
+context_null_error:
+  {
+    GST_ELEMENT_ERROR (trans, RESOURCE, FAILED,
+        ("Failed to create context."), (NULL));
+    return FALSE;
+  }
 error:
   {
     GST_ELEMENT_ERROR (trans, LIBRARY, INIT,