gstglcontext: is_shared should return FALSE if no group
authorJulien Isorce <j.isorce@samsung.com>
Wed, 30 Nov 2016 09:22:17 +0000 (09:22 +0000)
committerJulien Isorce <j.isorce@samsung.com>
Thu, 1 Dec 2016 10:50:05 +0000 (10:50 +0000)
If a sub class of GstGLContext does not create a group
then it currently crashes:

0 g_atomic_int_get (&share->refcount)
1 _context_share_group_is_shared (context->priv->sharegroup)
2 gst_gl_context_is_shared
3 _default_set_sync_gl

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

gst-libs/gst/gl/gstglcontext.c

index 899c121c5caa61086f68f8d95ff04c4941ea606d..792aac726df7a46fc2240f9dd21ed6acac4ff7b6 100644 (file)
@@ -1670,6 +1670,10 @@ gboolean
 gst_gl_context_is_shared (GstGLContext * context)
 {
   g_return_val_if_fail (GST_IS_GL_CONTEXT (context), FALSE);
+
+  if (!context->priv->sharegroup)
+    return FALSE;
+
   if (GST_IS_GL_WRAPPED_CONTEXT (context))
     g_return_val_if_fail (context->priv->active_thread, FALSE);
   else