]> git.sesse.net Git - vlc/blobdiff - src/input/resource.c
Fixed a potential race condition in input_resource_HoldVout*.
[vlc] / src / input / resource.c
index 5e2b79a00fb645c81ea9a96387fa4305df2c8cb9..5f5b0de690ba2b2fdbc98de14bf76acac325b28f 100644 (file)
@@ -275,15 +275,12 @@ static vout_thread_t *RequestVout( input_resource_t *p_resource,
 }
 static vout_thread_t *HoldVout( input_resource_t *p_resource )
 {
-    if( p_resource->i_vout <= 0 )
-        return NULL;
-
     /* TODO FIXME: p_resource->pp_vout order is NOT stable */
     vlc_mutex_lock( &p_resource->lock_hold );
 
-    vout_thread_t *p_vout = p_resource->pp_vout[0];
-
-    vlc_object_hold( p_vout );
+    vout_thread_t *p_vout = p_resource->i_vout > 0 ? p_resource->pp_vout[0] : NULL;
+    if( p_vout )
+        vlc_object_hold( p_vout );
 
     vlc_mutex_unlock( &p_resource->lock_hold );