summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjnemeth <jnemeth@NetBSD.org>2006-05-28 11:33:56 +0000
committerjnemeth <jnemeth@NetBSD.org>2006-05-28 11:33:56 +0000
commit4c99f4ecf2d4a561fccd1663db56176c0d679e12 (patch)
tree8bb5e16f380f58a17ccd18f8f87439bcd66f0466
parent62438e22ea784ad2691c519d55316b4cfb70642c (diff)
unlink temp file in error case
-rw-r--r--usr.sbin/ndiscvt/ndiscvt.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/usr.sbin/ndiscvt/ndiscvt.c b/usr.sbin/ndiscvt/ndiscvt.c
index 1e9c5913730..619e96ba6ba 100644
--- a/usr.sbin/ndiscvt/ndiscvt.c
+++ b/usr.sbin/ndiscvt/ndiscvt.c
@@ -35,7 +35,7 @@
__FBSDID("$FreeBSD: src/usr.sbin/ndiscvt/ndiscvt.c,v 1.9.2.2 2005/02/23 16:31:47 wpaul Exp $");
#endif
#ifdef __NetBSD__
-__RCSID("$NetBSD: ndiscvt.c,v 1.8 2006/05/26 11:45:31 jnemeth Exp $");
+__RCSID("$NetBSD: ndiscvt.c,v 1.9 2006/05/28 11:33:56 jnemeth Exp $");
#endif
@@ -189,12 +189,14 @@ bincvt(char *sysfile, char *outfile, void *img, int fsize)
binfp = fdopen(fd, "a+");
if (binfp == NULL) {
- close(fd);
+ unlink(tname);
err(1, "opening %s failed", tname);
}
- if (fwrite(img, fsize, 1, binfp) != 1)
+ if (fwrite(img, fsize, 1, binfp) != 1) {
+ unlink(tname);
err(1, "failed to output binary image");
+ }
fclose(binfp);