From: Bart V. A. <bva...@ac...> - 2010-09-07 11:04:23
|
On Tue, Sep 7, 2010 at 12:59 PM, Christian Borntraeger <bor...@de...> wrote: > Am 02.09.2010 16:50, schrieb sv...@va...: >> Author: bart >> Date: 2010-09-02 15:50:41 +0100 (Thu, 02 Sep 2010) >> New Revision: 11329 >> >> Log: >> Made sure that DRD processes client programs that use SA_ONSTACK >> correctly (e.g. Wine). >> >> >> Modified: >> trunk/drd/drd_main.c >> >> >> Modified: trunk/drd/drd_main.c >> =================================================================== >> --- trunk/drd/drd_main.c 2010-09-02 14:44:17 UTC (rev 11328) >> +++ trunk/drd/drd_main.c 2010-09-02 14:50:41 UTC (rev 11329) >> @@ -326,9 +326,6 @@ >> { >> const Addr a2 = a1 + len; >> >> - if (len == 0) >> - return; >> - >> tl_assert(a1 < a2); >> >> if (UNLIKELY(DRD_(any_address_is_traced)())) > > Bart, > > this basically removes r11304. Was this an oversight? > len=0 can really happen in real code,e.g. on startup > if the stack pointer is exactly on a page boundary > and valgrind_main does initial stack permissions. > (client_SP == seg->start) The above commit indeed removes r11304. Revision 11304 was committed too early - it was committed while I was searching for the cause of an assertion failure triggered by a signal handler that was invoked on an alternate stack. None of the callers of the modified function should invoke it with len == 0. Bart. |