|
From: <sv...@va...> - 2011-08-11 14:56:37
|
Author: tom
Date: 2011-08-11 15:51:47 +0100 (Thu, 11 Aug 2011)
New Revision: 11965
Log:
Make do_mremap only check new_addr for wraparound if MREMAP_FIXED was
fixed, as new_addr may be meaningless otherwise. Fix to #204484.
Modified:
trunk/coregrind/m_syswrap/syswrap-generic.c
Modified: trunk/coregrind/m_syswrap/syswrap-generic.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-generic.c 2011-08-11 02:23:54 UTC (rev 11964)
+++ trunk/coregrind/m_syswrap/syswrap-generic.c 2011-08-11 14:51:47 UTC (rev 11965)
@@ -278,9 +278,10 @@
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
meaningless). */
|