mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
Update.
1998-06-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/generic/backtrace.c (INNER_THAN): New definition, use it to compare stack addresses.
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
1998-06-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||||
|
|
||||||
|
* sysdeps/generic/backtrace.c (INNER_THAN): New definition, use it
|
||||||
|
to compare stack addresses.
|
||||||
|
|
||||||
1998-06-17 Ulrich Drepper <drepper@cygnus.com>
|
1998-06-17 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/alpha/glob.c: Include glob.h before
|
* sysdeps/unix/sysv/linux/alpha/glob.c: Include glob.h before
|
||||||
|
@ -44,6 +44,11 @@ extern void *__libc_stack_end;
|
|||||||
# define CURRENT_STACK_FRAME ({ char __csf; &__csf; })
|
# define CURRENT_STACK_FRAME ({ char __csf; &__csf; })
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* By default we assume that the stack grows downward. */
|
||||||
|
#ifndef INNER_THAN
|
||||||
|
# define INNER_THAN <
|
||||||
|
#endif
|
||||||
|
|
||||||
struct layout
|
struct layout
|
||||||
{
|
{
|
||||||
struct layout *next;
|
struct layout *next;
|
||||||
@ -67,7 +72,8 @@ __backtrace (array, size)
|
|||||||
current = (struct layout *) top_frame;
|
current = (struct layout *) top_frame;
|
||||||
while (cnt < size)
|
while (cnt < size)
|
||||||
{
|
{
|
||||||
if ((void *) current < top_stack || (void *) current > __libc_stack_end)
|
if ((void *) current INNER_THAN top_stack
|
||||||
|
|| !((void *) current INNER_THAN __libc_stack_end))
|
||||||
/* This means the address is out of range. Note that for the
|
/* This means the address is out of range. Note that for the
|
||||||
toplevel we see a frame pointer with value NULL which clearly is
|
toplevel we see a frame pointer with value NULL which clearly is
|
||||||
out of range. */
|
out of range. */
|
||||||
|
Reference in New Issue
Block a user