svn commit: r267366 - head/usr.bin/vtfontcvt

Ed Maste emaste at FreeBSD.org
Wed Jun 11 17:19:58 UTC 2014


Author: emaste
Date: Wed Jun 11 17:19:57 2014
New Revision: 267366
URL: http://svnweb.freebsd.org/changeset/base/267366

Log:
  Avoid leaking file pointer on error
  
  CID:		1222506, 1222505

Modified:
  head/usr.bin/vtfontcvt/vtfontcvt.c

Modified: head/usr.bin/vtfontcvt/vtfontcvt.c
==============================================================================
--- head/usr.bin/vtfontcvt/vtfontcvt.c	Wed Jun 11 17:03:14 2014	(r267365)
+++ head/usr.bin/vtfontcvt/vtfontcvt.c	Wed Jun 11 17:19:57 2014	(r267366)
@@ -331,6 +331,7 @@ parse_file(const char *filename, unsigne
 {
 	FILE *fp;
 	size_t len;
+	int rv;
 
 	fp = fopen(filename, "r");
 	if (fp == NULL) {
@@ -339,8 +340,11 @@ parse_file(const char *filename, unsigne
 	}
 	len = strlen(filename);
 	if (len > 4 && strcasecmp(filename + len - 4, ".hex") == 0)
-		return parse_hex(fp, map_idx);
-	return parse_bdf(fp, map_idx);
+		rv = parse_hex(fp, map_idx);
+	else
+		rv = parse_bdf(fp, map_idx);
+	fclose(fp);
+	return (rv);
 }
 
 static void
@@ -447,6 +451,7 @@ write_fnt(const char *filename)
 	fh.map_count[3] = htobe32(map_folded_count[3]);
 	if (fwrite(&fh, sizeof fh, 1, fp) != 1) {
 		perror(filename);
+		fclose(fp);
 		return (1);
 	}
 
@@ -456,9 +461,11 @@ write_fnt(const char *filename)
 	    write_mappings(fp, VFNT_MAP_BOLD) != 0 ||
 	    write_mappings(fp, 3) != 0) {
 		perror(filename);
+		fclose(fp);
 		return (1);
 	}
 
+	fclose(fp);
 	return (0);
 }
 


More information about the svn-src-head mailing list