freebsd-ports/devel/libexecinfo/files/patch-execinfo.c
Maxim Sobolev e9050dccb6 Don't rely only on stack frame being 0 when bottom of stack reached, but
check return address as well. It is necessary for avoiding crash when
FreeBSD threads are used.
2003-08-10 16:47:03 +00:00

18 lines
390 B
C

$FreeBSD$
--- execinfo.c 2003/08/10 06:14:30 1.1
+++ execinfo.c 2003/08/10 06:15:23
@@ -41,8 +41,11 @@
{
int i;
- for (i = 1; getframeaddr(i + 1) != NULL && i != size + 1; i++)
+ for (i = 1; getframeaddr(i + 1) != NULL && i != size + 1; i++) {
buffer[i - 1] = getreturnaddr(i);
+ if (buffer[i - 1] == NULL)
+ break;
+ }
return i - 1;
}