summaryrefslogtreecommitdiff
path: root/usr.bin/mkuzip
diff options
context:
space:
mode:
authorMaxim Sobolev <sobomax@FreeBSD.org>2017-06-23 17:39:00 +0000
committerMaxim Sobolev <sobomax@FreeBSD.org>2017-06-23 17:39:00 +0000
commite978052623fb50e8f923c959379f32256a6fb63e (patch)
tree6f136ab041252c1ce97ed14b8b0cdaa82311b435 /usr.bin/mkuzip
parentc2dbd123dac89f68215702966f02033fb4205339 (diff)
downloadsrc-test-e978052623fb50e8f923c959379f32256a6fb63e.tar.gz
src-test-e978052623fb50e8f923c959379f32256a6fb63e.zip
Don't leak file descriptor in some cases.
Reported by: cem MFC after: 6 weeks
Notes
Notes: svn path=/head/; revision=320277
Diffstat (limited to 'usr.bin/mkuzip')
-rw-r--r--usr.bin/mkuzip/mkuz_insize.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/usr.bin/mkuzip/mkuz_insize.c b/usr.bin/mkuzip/mkuz_insize.c
index e7b3e7f7e67a8..20a4ab6751086 100644
--- a/usr.bin/mkuzip/mkuz_insize.c
+++ b/usr.bin/mkuzip/mkuz_insize.c
@@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$");
#include <sys/stat.h>
#include <err.h>
#include <fcntl.h>
+#include <unistd.h>
#include "mkuz_cfg.h"
#include "mkuz_insize.h"
@@ -58,12 +59,15 @@ mkuz_get_insize(struct mkuz_cfg *cfp)
ffd = open(statfsbuf.f_mntfromname, O_RDONLY);
if (ffd < 0) {
warn("open(%s, O_RDONLY)", statfsbuf.f_mntfromname);
+ close(ffd);
return (-1);
}
if (ioctl(ffd, DIOCGMEDIASIZE, &ms) < 0) {
warn("ioctl(DIOCGMEDIASIZE)");
+ close(ffd);
return (-1);
}
+ close(ffd);
sb.st_size = ms;
} else if (S_ISCHR(sb.st_mode)) {
if (ioctl(cfp->fdr, DIOCGMEDIASIZE, &ms) < 0) {