diff options
author | alc <alc@FreeBSD.org> | 2003-11-13 05:26:55 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2003-11-13 05:26:55 +0000 |
commit | 5bdb94b83897181357935dfd40c365aa2a5300ac (patch) | |
tree | 27152bd757f1ebe7d74ab5221256a0b8e6df8d91 | |
parent | 5bfac52170643473ecffbdd7b8bcdbf46cae0887 (diff) | |
download | FreeBSD-src-5bdb94b83897181357935dfd40c365aa2a5300ac.zip FreeBSD-src-5bdb94b83897181357935dfd40c365aa2a5300ac.tar.gz |
Don't mmap(2) and munmap(2) zero-length files.
Submitted by: Wiktor Niesiobedzki <bsd@w.evip.pl>
-rw-r--r-- | bin/cp/utils.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/bin/cp/utils.c b/bin/cp/utils.c index e8c542c..782dc6b 100644 --- a/bin/cp/utils.c +++ b/bin/cp/utils.c @@ -133,7 +133,8 @@ copy_file(const FTSENT *entp, int dne) * wins some CPU back. */ #ifdef VM_AND_BUFFER_CACHE_SYNCHRONIZED - if (S_ISREG(fs->st_mode) && fs->st_size <= 8 * 1048576) { + if (S_ISREG(fs->st_mode) && fs->st_size > 0 && + fs->st_size <= 8 * 1048576) { if ((p = mmap(NULL, (size_t)fs->st_size, PROT_READ, MAP_SHARED, from_fd, (off_t)0)) == MAP_FAILED) { warn("%s", entp->fts_path); |