From: Tom Hughes Date: Thu, 11 Aug 2011 14:51:47 +0000 (+0000) Subject: Make do_mremap only check new_addr for wraparound if MREMAP_FIXED was X-Git-Tag: svn/VALGRIND_3_7_0~272 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e4d325a237ef669832a307066ee7c2bc15b307df;p=thirdparty%2Fvalgrind.git Make do_mremap only check new_addr for wraparound if MREMAP_FIXED was fixed, as new_addr may be meaningless otherwise. Fix to #204484. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11965 --- diff --git a/coregrind/m_syswrap/syswrap-generic.c b/coregrind/m_syswrap/syswrap-generic.c index a1c55b6f78..ec09e50687 100644 --- a/coregrind/m_syswrap/syswrap-generic.c +++ b/coregrind/m_syswrap/syswrap-generic.c @@ -278,8 +278,9 @@ SysRes do_mremap( Addr old_addr, SizeT old_len, goto eINVAL; /* reject wraparounds */ - if (old_addr + old_len < old_addr - || new_addr + new_len < new_len) + if (old_addr + old_len < old_addr) + goto eINVAL; + if (f_fixed == True && new_addr + new_len < new_len) goto eINVAL; /* kernel rejects all fixed, no-move requests (which are