]> git.sesse.net Git - vlc/commitdiff
v4l2: fix race condition
authorRémi Denis-Courmont <remi@remlab.net>
Wed, 11 Apr 2012 20:00:01 +0000 (23:00 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Wed, 11 Apr 2012 20:00:48 +0000 (23:00 +0300)
(regression from 855f0b7d11bd63d929cefea112a0754fdeed3618)

modules/access/v4l2/access.c
modules/access/v4l2/demux.c

index 3cd0e56bf4f51d5a7ada26c56bc9f4e80f58ab16..3d6a0954c21d3a6f35dea9936d8dc995cc1560ba 100644 (file)
@@ -90,6 +90,7 @@ int AccessOpen( vlc_object_t *obj )
         /* fallback to direct kernel mode anyway */
         fd = rawfd;
     }
+    sys->fd = fd;
 
     if (InitVideo (access, fd))
     {
@@ -97,7 +98,6 @@ int AccessOpen( vlc_object_t *obj )
         goto error;
     }
 
-    sys->fd = fd;
     access->pf_seek = NULL;
     access->pf_control = AccessControl;
     return VLC_SUCCESS;
index 7a43ba97af1a883da2e9aede03735a959f5f7d7d..58e287e48adcdd0b22b4e828714ef2e36501f4af 100644 (file)
@@ -95,6 +95,7 @@ int DemuxOpen( vlc_object_t *obj )
         /* fallback to direct kernel mode anyway */
         fd = rawfd;
     }
+    sys->fd = fd;
 
     if (InitVideo (demux, fd))
     {
@@ -102,7 +103,6 @@ int DemuxOpen( vlc_object_t *obj )
         goto error;
     }
 
-    sys->fd = fd;
     sys->controls = ControlsInit (VLC_OBJECT(demux), fd);
     demux->pf_demux = NULL;
     demux->pf_control = DemuxControl;