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
openSUSE Build Service is sponsored by