From: Florian Krohm Date: Fri, 24 Apr 2015 10:05:23 +0000 (+0000) Subject: Check for any client stack segment. Rule out valgrind segments. X-Git-Tag: svn/VALGRIND_3_11_0~459 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7dc618ae869c28213328ab98632eca66f30fe0ce;p=thirdparty%2Fvalgrind.git Check for any client stack segment. Rule out valgrind segments. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15140 --- diff --git a/coregrind/m_syswrap/syswrap-generic.c b/coregrind/m_syswrap/syswrap-generic.c index e1f8a5b26d..cb3cfb1aac 100644 --- a/coregrind/m_syswrap/syswrap-generic.c +++ b/coregrind/m_syswrap/syswrap-generic.c @@ -79,7 +79,8 @@ void ML_(guess_and_register_stack) (Addr sp, ThreadState* tst) assume that sp starts near its highest possible value, and can only go down to the start of the mmaped segment. */ seg = VG_(am_find_nsegment)(sp); - if (seg && seg->kind != SkResvn) { + if (seg && + VG_(am_is_valid_for_client)(sp, 1, VKI_PROT_READ | VKI_PROT_WRITE)) { tst->client_stack_highest_byte = (Addr)VG_PGROUNDUP(sp)-1; tst->client_stack_szB = tst->client_stack_highest_byte - seg->start + 1;