1
mirror of https://code.videolan.org/videolan/vlc synced 2024-10-07 03:56:28 +02:00

motionlib: fix potential file descriptor leak, set close-on-exec

This commit is contained in:
Rémi Denis-Courmont 2014-04-12 12:40:27 +03:00
parent 9526a02809
commit a3be08a370

View File

@ -71,7 +71,7 @@ motion_sensors_t *motion_create( vlc_object_t *obj )
} }
if( access( "/sys/devices/platform/hdaps/position", R_OK ) == 0 if( access( "/sys/devices/platform/hdaps/position", R_OK ) == 0
&& ( f = fopen( "/sys/devices/platform/hdaps/calibrate", "r" ) ) ) && ( f = fopen( "/sys/devices/platform/hdaps/calibrate", "re" ) ) )
{ {
/* IBM HDAPS support */ /* IBM HDAPS support */
motion->i_calibrate = fscanf( f, "(%d,%d)", &i_x, &i_y ) == 2 ? i_x: 0; motion->i_calibrate = fscanf( f, "(%d,%d)", &i_x, &i_y ) == 2 ? i_x: 0;
@ -86,7 +86,7 @@ motion_sensors_t *motion_create( vlc_object_t *obj )
msg_Dbg( obj, "AMS motion detection correctly loaded" ); msg_Dbg( obj, "AMS motion detection correctly loaded" );
} }
else if( access( "/sys/devices/platform/applesmc.768/position", R_OK ) == 0 else if( access( "/sys/devices/platform/applesmc.768/position", R_OK ) == 0
&& ( f = fopen( "/sys/devices/platform/applesmc.768/calibrate", "r" ) ) ) && ( f = fopen( "/sys/devices/platform/applesmc.768/calibrate", "re" ) ) )
{ {
/* Apple SMC (newer macbooks) */ /* Apple SMC (newer macbooks) */
/* Should be factorised with HDAPS */ /* Should be factorised with HDAPS */
@ -133,7 +133,7 @@ static int GetOrientation( motion_sensors_t *motion )
switch( motion->sensor ) switch( motion->sensor )
{ {
case HDAPS_SENSOR: case HDAPS_SENSOR:
f = fopen( "/sys/devices/platform/hdaps/position", "r" ); f = fopen( "/sys/devices/platform/hdaps/position", "re" );
if( !f ) if( !f )
{ {
return 0; return 0;
@ -148,7 +148,7 @@ static int GetOrientation( motion_sensors_t *motion )
return ( i_x - motion->i_calibrate ) * 10; return ( i_x - motion->i_calibrate ) * 10;
case AMS_SENSOR: case AMS_SENSOR:
f = fopen( "/sys/devices/ams/x", "r" ); f = fopen( "/sys/devices/ams/x", "re" );
if( !f ) if( !f )
{ {
return 0; return 0;
@ -163,7 +163,7 @@ static int GetOrientation( motion_sensors_t *motion )
return - i_x * 30; /* FIXME: arbitrary */ return - i_x * 30; /* FIXME: arbitrary */
case APPLESMC_SENSOR: case APPLESMC_SENSOR:
f = fopen( "/sys/devices/platform/applesmc.768/position", "r" ); f = fopen( "/sys/devices/platform/applesmc.768/position", "re" );
if( !f ) if( !f )
{ {
return 0; return 0;