diff options
author | ngie <ngie@FreeBSD.org> | 2016-04-20 00:49:49 +0000 |
---|---|---|
committer | ngie <ngie@FreeBSD.org> | 2016-04-20 00:49:49 +0000 |
commit | f1d4f395a6d09bdfa2d8dbbc03cc5af11a3d86c6 (patch) | |
tree | db62a5ec9357e5452fc0f53f586a4d4d00b8951c /sbin/savecore/savecore.c | |
parent | c812be13956348789ee902dfa962354ef4cfe6ba (diff) | |
download | FreeBSD-src-f1d4f395a6d09bdfa2d8dbbc03cc5af11a3d86c6.zip FreeBSD-src-f1d4f395a6d09bdfa2d8dbbc03cc5af11a3d86c6.tar.gz |
Don't leak fd on sectorsize malloc failure
Also, call endfsent after calling getfsent (i.e. when not explicitly called
with a swap device) for code cleanliness
CID: 1354785
Differential Revision: https://reviews.freebsd.org/D6014
X-MFC with: r298076
Reported by: Coverity
Reviewed by: cem
Sponsored by: EMC / Isilon Storage Division
Diffstat (limited to 'sbin/savecore/savecore.c')
-rw-r--r-- | sbin/savecore/savecore.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sbin/savecore/savecore.c b/sbin/savecore/savecore.c index 1d00ed2..fbbabe5 100644 --- a/sbin/savecore/savecore.c +++ b/sbin/savecore/savecore.c @@ -502,7 +502,7 @@ DoFile(const char *savedir, const char *device) temp = malloc(sectorsize); if (temp == NULL) { syslog(LOG_ERR, "%m"); - return; + goto closefd; } } if (lseek(fd, lasthd, SEEK_SET) != lasthd || @@ -845,6 +845,7 @@ main(int argc, char **argv) continue; DoFile(savedir, fsp->fs_spec); } + endfsent(); } else { for (i = 0; i < argc; i++) DoFile(savedir, argv[i]); |