]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Consistency improvement: made sure that VG_TRACK(die_mem_stack, address, len)
authorBart Van Assche <bvanassche@acm.org>
Tue, 7 Sep 2010 16:32:53 +0000 (16:32 +0000)
committerBart Van Assche <bvanassche@acm.org>
Tue, 7 Sep 2010 16:32:53 +0000 (16:32 +0000)
is not invoked with a zero third argument.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11342

coregrind/m_main.c

index 340af095d6e00cd21790fd9a2141235194be2533..c98bf087cba33f76cacb1fa60410d6aa7e746ad7 100644 (file)
@@ -2165,7 +2165,9 @@ Int valgrind_main ( Int argc, HChar **argv, HChar **envp )
      VG_(deleteXA)( addr2dihandle );
 
      /* Also do the initial stack permissions. */
-     { NSegment const* seg 
+     {
+       SSizeT inaccessible_len;
+       NSegment const* seg 
           = VG_(am_find_nsegment)( the_iifii.initial_client_SP );
        vg_assert(seg);
        vg_assert(seg->kind == SkAnonC);
@@ -2181,12 +2183,13 @@ Int valgrind_main ( Int argc, HChar **argv, HChar **envp )
          is required (VG_STACK_REDZONE_SZB).  setup_client_stack()
          will have allocated an extra page if a red zone is required,
          to be on the safe side. */
-       vg_assert(the_iifii.initial_client_SP - VG_STACK_REDZONE_SZB 
-                 >= seg->start);
-       VG_TRACK( die_mem_stack, 
-                 seg->start, 
-                 the_iifii.initial_client_SP - VG_STACK_REDZONE_SZB 
-                                             - seg->start );
+       inaccessible_len = the_iifii.initial_client_SP - VG_STACK_REDZONE_SZB 
+                          - seg->start;
+       vg_assert(inaccessible_len >= 0);
+       if (inaccessible_len > 0)
+          VG_TRACK( die_mem_stack, 
+                    seg->start, 
+                    inaccessible_len );
        VG_(debugLog)(2, "main", "mark stack inaccessible %010lx-%010lx\n",
                         seg->start, 
                         the_iifii.initial_client_SP-1 - VG_STACK_REDZONE_SZB);