libunwind-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Libunwind-devel] [PATCH] elfxx: store elf image pointer and size after


From: Hans-Christian Noren Egtvedt
Subject: [Libunwind-devel] [PATCH] elfxx: store elf image pointer and size after mapping image
Date: Wed, 8 Nov 2017 11:34:35 +0100

If loading debug link is not successful, the initial NULL pointer for
ei->image will eventually be restored, causing segfault during a later
call to valid_object.

Move populating the prev_image and prev_size to after elf_map_image() to
fix this.

Signed-off-by: Hans-Christian Noren Egtvedt <address@hidden>
---
 src/elfxx.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/elfxx.c b/src/elfxx.c
index 48a08cd..b03dfcb 100644
--- a/src/elfxx.c
+++ b/src/elfxx.c
@@ -386,8 +386,8 @@ elf_w (load_debuglink) (const char* file, struct elf_image 
*ei, int is_local)
 {
   int ret;
   Elf_W (Shdr) *shdr;
-  Elf_W (Ehdr) *prev_image = ei->image;
-  off_t prev_size = ei->size;
+  Elf_W (Ehdr) *prev_image;
+  off_t prev_size;
 
   if (!ei->image)
     {
@@ -396,6 +396,9 @@ elf_w (load_debuglink) (const char* file, struct elf_image 
*ei, int is_local)
        return ret;
     }
 
+  prev_image = ei->image;
+  prev_size = ei->size;
+
   /* Ignore separate debug files which contain a .gnu_debuglink section. */
   if (is_local == -1) {
     return 0;
-- 
2.14.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]