]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Make do_mremap only check new_addr for wraparound if MREMAP_FIXED was
authorTom Hughes <tom@compton.nu>
Thu, 11 Aug 2011 14:51:47 +0000 (14:51 +0000)
committerTom Hughes <tom@compton.nu>
Thu, 11 Aug 2011 14:51:47 +0000 (14:51 +0000)
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

index a1c55b6f78ff621f8a303d8f4230e65911fecb74..ec09e506874450c0e8f2804c0334ccad19adf1a7 100644 (file)
@@ -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