From e4d325a237ef669832a307066ee7c2bc15b307df Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Thu, 11 Aug 2011 14:51:47 +0000 Subject: [PATCH] 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 --- coregrind/m_syswrap/syswrap-generic.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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 -- 2.47.2