From 26ac52dba5e09da10e56f31b13d2e128f702aea2 Mon Sep 17 00:00:00 2001
From: Max Ostapenko <m.ostapenko@partner.samsung.com>
Date: Wed, 2 Mar 2016 18:32:55 +0200
Subject: [PATCH] elf.c (backtrace_initialize): Properly initialize
 elf_fileline_fn to avoid possible crash.

libbacktrace/

2016-03-02  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>

	* elf.c (backtrace_initialize): Properly initialize elf_fileline_fn to
	avoid possible crash.
	(elf_add): Don't set *fileline_fn to elf_nodebug value in case of
	missing debug info anymore.

From-SVN: r233911
---
 libbacktrace/ChangeLog | 7 +++++++
 libbacktrace/elf.c     | 3 +--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/libbacktrace/ChangeLog b/libbacktrace/ChangeLog
index b38e2fee45ca..eba342743850 100644
--- a/libbacktrace/ChangeLog
+++ b/libbacktrace/ChangeLog
@@ -1,3 +1,10 @@
+2016-03-02  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
+
+	* elf.c (backtrace_initialize): Properly initialize elf_fileline_fn to
+	avoid possible crash.
+	(elf_add): Don't set *fileline_fn to elf_nodebug value in case of
+	missing debug info anymore.
+
 2016-02-06  John David Anglin  <danglin@gcc.gnu.org>
 
 	* mmap.c (MAP_FAILED): Define if not defined.
diff --git a/libbacktrace/elf.c b/libbacktrace/elf.c
index 05cc5c04734b..f85ac65d99f1 100644
--- a/libbacktrace/elf.c
+++ b/libbacktrace/elf.c
@@ -791,7 +791,6 @@ elf_add (struct backtrace_state *state, int descriptor, uintptr_t base_address,
     {
       if (!backtrace_close (descriptor, error_callback, data))
 	goto fail;
-      *fileline_fn = elf_nodebug;
       return 1;
     }
 
@@ -925,7 +924,7 @@ backtrace_initialize (struct backtrace_state *state, int descriptor,
   int ret;
   int found_sym;
   int found_dwarf;
-  fileline elf_fileline_fn;
+  fileline elf_fileline_fn = elf_nodebug;
   struct phdr_data pd;
 
   ret = elf_add (state, descriptor, 0, error_callback, data, &elf_fileline_fn,
-- 
GitLab