Peter Oberndorfer : dbghelp: Initialize the elf_section_map in case of failures in elf_find_section.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Mar 16 07:20:23 CDT 2007


Module: wine
Branch: master
Commit: 7bbb21205005f9b14ca7f58a126b512cb8941420
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=7bbb21205005f9b14ca7f58a126b512cb8941420

Author: Peter Oberndorfer <kumbayo84 at arcor.de>
Date:   Thu Mar 15 21:57:04 2007 +0100

dbghelp: Initialize the elf_section_map in case of failures in elf_find_section.

Make sidx signed so sidx < 0 comparisons work.
(most of the patch written by Eric Pouech)

---

 dlls/dbghelp/elf_module.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/dlls/dbghelp/elf_module.c b/dlls/dbghelp/elf_module.c
index 62a1ee8..b1b6b74 100644
--- a/dlls/dbghelp/elf_module.c
+++ b/dlls/dbghelp/elf_module.c
@@ -119,7 +119,7 @@ struct elf_file_map
 struct elf_section_map
 {
     struct elf_file_map*        fmap;
-    unsigned                    sidx;
+    long                        sidx;
 };
 
 struct symtab_elt
@@ -178,8 +178,7 @@ static BOOL elf_find_section(struct elf_file_map* fmap, const char* name,
         if (fmap->shstrtab == ELF_NO_MAP)
         {
             struct elf_section_map  hdr_esm = {fmap, fmap->elfhdr.e_shstrndx};
-            fmap->shstrtab = elf_map_section(&hdr_esm);
-            if (fmap->shstrtab == ELF_NO_MAP) return FALSE;
+            if ((fmap->shstrtab = elf_map_section(&hdr_esm)) == ELF_NO_MAP) break;
         }
         for (i = 0; i < fmap->elfhdr.e_shnum; i++)
         {
@@ -193,6 +192,8 @@ static BOOL elf_find_section(struct elf_file_map* fmap, const char* name,
         }
         fmap = fmap->alternate;
     }
+    esm->fmap = NULL;
+    esm->sidx = -1;
     return FALSE;
 }
 




More information about the wine-cvs mailing list