From 92d897cde2f0c2f9f006630d0461a54c784f83ab Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Fri, 15 Aug 2003 12:05:08 +0000 Subject: * mmap.cc (mmap64): Avoid crash if file size is less than requested map length. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/mmap.cc | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 57f7092cc..ed37e0b4d 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2003-08-15 Corinna Vinschen + + * mmap.cc (mmap64): Avoid crash if file size is less than requested + map length. + 2003-08-13 Igor Pechtchanski * path.cc (special_name): Add checks for some specials followed by diff --git a/winsup/cygwin/mmap.cc b/winsup/cygwin/mmap.cc index 7d8809e47..6af4946a7 100644 --- a/winsup/cygwin/mmap.cc +++ b/winsup/cygwin/mmap.cc @@ -600,7 +600,7 @@ mmap64 (caddr_t addr, size_t len, int prot, int flags, int fd, _off64_t off) } /* Insert into the list */ - mmap_record *rec = map_list->add_record (mmap_rec, off, len); + mmap_record *rec = map_list->add_record (mmap_rec, off, len > gran_len ? gran_len : len); caddr_t ret = rec->get_address () + (off - gran_off); syscall_printf ("%x = mmap() succeeded", ret); ReleaseResourceLock (LOCK_MMAP_LIST, READ_LOCK | WRITE_LOCK, "mmap"); -- cgit v1.2.3