File xawtv-3.95-missing-fclose.patch of Package xawtv
---
console/fbtools.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
--- xawtv-3.95.orig/console/fbtools.c
+++ xawtv-3.95/console/fbtools.c
@@ -177,7 +177,7 @@ fb_setmode(char *name)
{
FILE *fp;
char line[80],label[32],value[16];
- int geometry=0, timings=0;
+ int geometry=0, timings=0, err=-1;
/* load current values */
if (-1 == ioctl(fb,FBIOGET_VSCREENINFO,&fb_var)) {
@@ -186,9 +186,9 @@ fb_setmode(char *name)
}
if (NULL == name)
- return -1;
+ return err;
if (NULL == (fp = fopen("/etc/fb.modes","r")))
- return -1;
+ return err;
while (NULL != fgets(line,79,fp)) {
if (1 == sscanf(line, "mode \"%31[^\"]\"",label) &&
0 == strcmp(label,name)) {
@@ -229,7 +229,7 @@ fb_setmode(char *name)
}
/* ok ? */
if (!geometry || !timings)
- return -1;
+ goto out;
/* set */
fb_var.xoffset = 0;
fb_var.yoffset = 0;
@@ -240,10 +240,13 @@ fb_setmode(char *name)
perror("ioctl FBIOGET_VSCREENINFO");
exit(1);
}
- return 0;
+ err = 0;
+ goto out;
}
}
- return -1;
+out:
+ fclose(fp);
+ return err;
}
static void