Subject: Re: xsrc/15357: stack trashing bug crashing the sparc Xservers
To: NetBSD Bugs and PR posting List <netbsd-bugs@netbsd.org>
From: Robert Elz <kre@munnari.OZ.AU>
List: netbsd-bugs
Date: 03/18/2002 19:26:57
    Date:        Sun, 17 Mar 2002 17:22:30 -0500 (EST)
    From:        woods@weird.com (Greg A. Woods)
    Message-ID:  <20020317222230.E82898D@proven.weird.com>

  | However it would seem that between two lines of code a local pointer
  | variable has suddenly changed value (in this case to zero!).  On line
  | 1767 the value of 'grab' must have been non-zero,

Unless you show the assembler code, there's no evidence for that.
If the code was compiled with anything more than -O0 (and there aren't
lots of volatile declarations around) code reordering could easily
mean that line 1767 hasn't been executed yet (in fact, most likely
grab is only going to be dereferenced once, the same value is needed
in lines 1767 and 1768 after all).  Same for line 1764 if that code is
being compiled in.

Sparc assembler isn't hard, but I'm afraid debugging X servers is outside
my field.   You might want to just make certain that you're not just
reaching your stack size limit though.

kre