From 1e678aed6cc8f4f77e2485a32c89cc96c4efe8d8 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 25 Jan 2013 23:36:11 +0100 Subject: [PATCH] re PR other/56076 (Several 64-bit libgo tests FAIL in read_line_header) PR other/56076 * dwarf.c (read_line_header): Don't crash if DW_AT_comp_dir attribute was not seen. From-SVN: r195478 --- libbacktrace/ChangeLog | 6 ++++++ libbacktrace/dwarf.c | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/libbacktrace/ChangeLog b/libbacktrace/ChangeLog index 25a56d92e22..b8755cfb60b 100644 --- a/libbacktrace/ChangeLog +++ b/libbacktrace/ChangeLog @@ -1,3 +1,9 @@ +2013-01-25 Jakub Jelinek + + PR other/56076 + * dwarf.c (read_line_header): Don't crash if DW_AT_comp_dir + attribute was not seen. + 2013-01-16 Ian Lance Taylor * dwarf.c (struct unit): Add filename and abs_filename fields. diff --git a/libbacktrace/dwarf.c b/libbacktrace/dwarf.c index ce12bdc48a3..3cdbb428b6e 100644 --- a/libbacktrace/dwarf.c +++ b/libbacktrace/dwarf.c @@ -1655,7 +1655,8 @@ read_line_header (struct backtrace_state *state, struct unit *u, strnlen ((const char *) hdr_buf.buf, hdr_buf.left) + 1)) return 0; dir_index = read_uleb128 (&hdr_buf); - if (IS_ABSOLUTE_PATH (filename)) + if (IS_ABSOLUTE_PATH (filename) + || (dir_index == 0 && u->comp_dir == NULL)) hdr->filenames[i] = filename; else {