aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarsten Haitzler <raster@rasterman.com>2012-12-14 05:28:16 +0000
committerCarsten Haitzler <raster@rasterman.com>2012-12-14 05:28:16 +0000
commit3dc01f3e7a0f7b686c14e2f2a62df8189d7c8297 (patch)
tree77e9e462476077fbcc01ec91d275c8519a689d6d
parenthave a theme fallback in preview so it works right. (diff)
downloadenlightenment-3dc01f3e7a0f7b686c14e2f2a62df8189d7c8297.tar.gz
fix filedesc leak in tempget when errs happen - based on info from
maxime, but written differently. SVN revision: 80914
-rw-r--r--src/modules/temperature/tempget.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/modules/temperature/tempget.c b/src/modules/temperature/tempget.c
index bfad5c799..7bad3d97f 100644
--- a/src/modules/temperature/tempget.c
+++ b/src/modules/temperature/tempget.c
@@ -373,7 +373,7 @@ init(void)
static int
check(void)
{
- FILE *f;
+ FILE *f = NULL;
int ret = 0;
int temp = 0;
char buf[4096];
@@ -424,13 +424,13 @@ check(void)
char dummy[4096];
if (fgets(buf, sizeof(buf), f) == NULL) goto error;
-
+ fclose(f);
+ f = NULL;
buf[sizeof(buf) - 1] = 0;
if (sscanf(buf, "%s %s %i", dummy, dummy, &temp) == 3)
ret = 1;
else
goto error;
- fclose(f);
}
else
goto error;
@@ -442,8 +442,8 @@ check(void)
if (f)
{
if (fgets(buf, sizeof(buf), f) == NULL) goto error;
-
fclose(f);
+ f = NULL;
buf[sizeof(buf) - 1] = 0;
if (sscanf(buf, "%i", &temp) == 1)
ret = 1;
@@ -461,9 +461,9 @@ check(void)
if (f)
{
if (fgets(buf, sizeof(buf), f) == NULL) goto error;
-
+ fclose(f);
+ f = NULL;
buf[sizeof(buf) - 1] = 0;
-
/* actually read the temp */
if (sscanf(buf, "%i", &temp) == 1)
ret = 1;
@@ -471,7 +471,6 @@ check(void)
goto error;
/* Hack for temp */
temp = temp / 1000;
- fclose(f);
}
else
goto error;
@@ -482,9 +481,9 @@ check(void)
if (f)
{
if (fgets(buf, sizeof(buf), f) == NULL) goto error;
-
+ fclose(f);
+ f = NULL;
buf[sizeof(buf) - 1] = 0;
-
/* actually read the temp */
if (sscanf(buf, "%i", &temp) == 1)
ret = 1;
@@ -492,7 +491,6 @@ check(void)
goto error;
/* Hack for temp */
temp = temp / 1000;
- fclose(f);
}
else
goto error;
@@ -505,9 +503,9 @@ check(void)
char *p, *q;
if (fgets(buf, sizeof(buf), f) == NULL) goto error;
-
- buf[sizeof(buf) - 1] = 0;
fclose(f);
+ f = NULL;
+ buf[sizeof(buf) - 1] = 0;
p = strchr(buf, ':');
if (p)
{
@@ -531,9 +529,9 @@ check(void)
if (f)
{
if (fgets(buf, sizeof(buf), f) == NULL) goto error;
-
- buf[sizeof(buf) - 1] = 0;
fclose(f);
+ f = NULL;
+ buf[sizeof(buf) - 1] = 0;
temp = atoi(buf);
temp /= 1000;
ret = 1;
@@ -550,6 +548,8 @@ check(void)
return -999;
error:
+ if (f) fclose(f);
+ f = NULL;
sensor_type = SENSOR_TYPE_NONE;
if (sensor_name) free(sensor_name);
sensor_name = NULL;