Commit a3be08a3 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

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

parent 9526a028
...@@ -71,7 +71,7 @@ motion_sensors_t *motion_create( vlc_object_t *obj ) ...@@ -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 ) ...@@ -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 ) ...@@ -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 ) ...@@ -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 ) ...@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment