os: don't ignore failure from dladdr
If dladdr returns 0, don't go and use the returned Dl_info, it may contain garbage. X.Org bug#44315 <https://bugs.freedesktop.org/show_bug.cgi?id=44315> Reported-and-tested-by: Cyril Brulebois <kibi@debian.org> Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> Reviewed-by: Cyril Brulebois <kibi@debian.org> Signed-off-by: Julien Cristau <jcristau@debian.org>
This commit is contained in:
parent
644efb43e0
commit
6269977c91
|
@ -46,7 +46,11 @@ void xorg_backtrace(void)
|
|||
ErrorF("\nBacktrace:\n");
|
||||
size = backtrace(array, 64);
|
||||
for (i = 0; i < size; i++) {
|
||||
dladdr(array[i], &info);
|
||||
int rc = dladdr(array[i], &info);
|
||||
if (rc == 0) {
|
||||
ErrorF("%d: ?? [%p]\n", i, array[i]);
|
||||
continue;
|
||||
}
|
||||
mod = (info.dli_fname && *info.dli_fname) ? info.dli_fname : "(vdso)";
|
||||
if (info.dli_saddr)
|
||||
ErrorF("%d: %s (%s+0x%lx) [%p]\n", i, mod,
|
||||
|
|
Loading…
Reference in New Issue
Block a user