]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Check for any client stack segment. Rule out valgrind segments.
authorFlorian Krohm <florian@eich-krohm.de>
Fri, 24 Apr 2015 10:05:23 +0000 (10:05 +0000)
committerFlorian Krohm <florian@eich-krohm.de>
Fri, 24 Apr 2015 10:05:23 +0000 (10:05 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15140

coregrind/m_syswrap/syswrap-generic.c

index e1f8a5b26d8afbf11b7ea0dfede86c1d2dabcf9f..cb3cfb1aac2bc89621e121e5124f563e0c71a707 100644 (file)
@@ -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;