diff options
author | Maxim Sobolev <sobomax@FreeBSD.org> | 2017-06-23 17:39:00 +0000 |
---|---|---|
committer | Maxim Sobolev <sobomax@FreeBSD.org> | 2017-06-23 17:39:00 +0000 |
commit | e978052623fb50e8f923c959379f32256a6fb63e (patch) | |
tree | 6f136ab041252c1ce97ed14b8b0cdaa82311b435 /usr.bin/mkuzip | |
parent | c2dbd123dac89f68215702966f02033fb4205339 (diff) | |
download | src-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.c | 4 |
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) { |