From: Jean Guyomarc'h Date: Tue, 19 Dec 2017 15:33:18 +0000 (+0100) Subject: eina: fix random segfaults when displaying BT X-Git-Tag: submit/sandbox/upgrade/efl120/20180319.053334~572 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f434fdae9358acdedb1b13d891f61ed1fb2e758b;p=platform%2Fupstream%2Fefl.git eina: fix random segfaults when displaying BT Under some circumstances, eina crashes when attempting to display the backtrace, because dladdr() may yield a dli_fname that is NULL. This is especially annoying in realease, when the backtrace is shown by default when CRI/ERR are thrown. @fix --- diff --git a/src/lib/eina/eina_debug_bt.c b/src/lib/eina/eina_debug_bt.c index c9bf23c..21b067c 100644 --- a/src/lib/eina/eina_debug_bt.c +++ b/src/lib/eina/eina_debug_bt.c @@ -67,7 +67,7 @@ _eina_debug_dump_fhandle_bt(FILE *f, void **bt, int btlen) offset = base = 0; // we have little choice but to hope/assume dladdr() doesn't alloc // anything here - if ((dladdr(bt[i], &info)) && (info.dli_fname[0])) + if ((dladdr(bt[i], &info)) && (info.dli_fname) && (info.dli_fname[0])) { offset = (unsigned long long)(uintptr_t)bt[i]; base = (unsigned long long)(uintptr_t)info.dli_fbase;