forked from pool/elfutils
This commit is contained in:
parent
57f31c0794
commit
4c94e0c162
16
elfutils-0.137-dwarf-header-check-fix.diff
Normal file
16
elfutils-0.137-dwarf-header-check-fix.diff
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
diff --git a/libdw/dwarf_getsrclines.c b/libdw/dwarf_getsrclines.c
|
||||||
|
index 9b3c97a..54c17f8 100644
|
||||||
|
--- a/libdw/dwarf_getsrclines.c
|
||||||
|
+++ b/libdw/dwarf_getsrclines.c
|
||||||
|
@@ -337,8 +337,11 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines)
|
||||||
|
/* Consistency check. */
|
||||||
|
if (unlikely (linep != header_start + header_length))
|
||||||
|
{
|
||||||
|
+#if 0
|
||||||
|
__libdw_seterrno (DWARF_E_INVALID_DWARF);
|
||||||
|
goto out;
|
||||||
|
+#endif
|
||||||
|
+ linep = header_start + header_length;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* We are about to process the statement program. Initialize the
|
54
elfutils-0.137-main-bias-fix2.diff
Normal file
54
elfutils-0.137-main-bias-fix2.diff
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
commit 7d9b821db6bc494417a57321b419c6b9481a2128
|
||||||
|
Author: Roland McGrath <roland@redhat.com>
|
||||||
|
Date: Thu Dec 18 15:08:09 2008 -0800
|
||||||
|
|
||||||
|
Fix last fix: ET_DYN addresses are taken as relative to MOD->low_addr.
|
||||||
|
|
||||||
|
* derelocate.c (dwfl_module_relocate_address): Fix last fix: ET_DYN
|
||||||
|
addresses are taken as relative to MOD->low_addr.
|
||||||
|
|
||||||
|
---
|
||||||
|
diff --git a/libdwfl/derelocate.c b/libdwfl/derelocate.c
|
||||||
|
index 7f390c7..f2a6467 100644
|
||||||
|
--- a/libdwfl/derelocate.c
|
||||||
|
+++ b/libdwfl/derelocate.c
|
||||||
|
@@ -238,6 +238,7 @@ dwfl_module_relocations (Dwfl_Module *mod)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
case ET_EXEC:
|
||||||
|
+ assert (mod->main.bias == 0);
|
||||||
|
assert (mod->debug.bias == 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
@@ -353,16 +354,26 @@ find_section (Dwfl_Module *mod, Dwarf_Addr *addr)
|
||||||
|
int
|
||||||
|
dwfl_module_relocate_address (Dwfl_Module *mod, Dwarf_Addr *addr)
|
||||||
|
{
|
||||||
|
- if (check_module (mod))
|
||||||
|
+ if (unlikely (check_module (mod)))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
- if (mod->e_type != ET_REL)
|
||||||
|
+ switch (mod->e_type)
|
||||||
|
{
|
||||||
|
- *addr -= mod->main.bias;
|
||||||
|
- return 0;
|
||||||
|
+ case ET_REL:
|
||||||
|
+ return find_section (mod, addr);
|
||||||
|
+
|
||||||
|
+ case ET_DYN:
|
||||||
|
+ /* All relative to first and only relocation base: module start. */
|
||||||
|
+ *addr -= mod->low_addr;
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
+ default:
|
||||||
|
+ /* Already absolute, dwfl_module_relocations returned zero. We
|
||||||
|
+ shouldn't really have been called, but it's a harmless no-op. */
|
||||||
|
+ break;
|
||||||
|
}
|
||||||
|
|
||||||
|
- return find_section (mod, addr);
|
||||||
|
+ return 0;
|
||||||
|
}
|
||||||
|
INTDEF (dwfl_module_relocate_address)
|
||||||
|
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jan 7 15:01:10 CET 2009 - tiwai@suse.de
|
||||||
|
|
||||||
|
- Fix the header size check in dwarf_getsrclines() (bnc#455992)
|
||||||
|
- Backport the fix for ET_DYN addresses
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Dec 16 13:48:38 CET 2008 - tiwai@suse.de
|
Tue Dec 16 13:48:38 CET 2008 - tiwai@suse.de
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package elfutils (Version 0.137)
|
# spec file for package elfutils (Version 0.137)
|
||||||
#
|
#
|
||||||
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -21,7 +21,7 @@
|
|||||||
Name: elfutils
|
Name: elfutils
|
||||||
License: GPL v2 or later
|
License: GPL v2 or later
|
||||||
Version: 0.137
|
Version: 0.137
|
||||||
Release: 4
|
Release: 5
|
||||||
Summary: Higher-level library to access ELF
|
Summary: Higher-level library to access ELF
|
||||||
Group: System/Libraries
|
Group: System/Libraries
|
||||||
Url: http://elfutils.fedorahosted.org
|
Url: http://elfutils.fedorahosted.org
|
||||||
@ -41,6 +41,8 @@ Patch22: elfutils-0.137-i386-rel-types.diff
|
|||||||
Patch23: elfutils-0.137-readelf-crash-fix.diff
|
Patch23: elfutils-0.137-readelf-crash-fix.diff
|
||||||
Patch24: elfutils-0.137-nm-crash-fix.diff
|
Patch24: elfutils-0.137-nm-crash-fix.diff
|
||||||
Patch25: elfutils-0.137-main-bias-fix.diff
|
Patch25: elfutils-0.137-main-bias-fix.diff
|
||||||
|
Patch26: elfutils-0.137-main-bias-fix2.diff
|
||||||
|
Patch27: elfutils-0.137-dwarf-header-check-fix.diff
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -211,6 +213,8 @@ Authors:
|
|||||||
%patch23 -p1
|
%patch23 -p1
|
||||||
%patch24 -p1
|
%patch24 -p1
|
||||||
%patch25 -p1
|
%patch25 -p1
|
||||||
|
%patch26 -p1
|
||||||
|
%patch27 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
autoreconf -fi
|
autoreconf -fi
|
||||||
@ -291,6 +295,9 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%{_includedir}/elfutils/libdwfl.h
|
%{_includedir}/elfutils/libdwfl.h
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jan 07 2009 tiwai@suse.de
|
||||||
|
- Fix the header size check in dwarf_getsrclines() (bnc#455992)
|
||||||
|
- Backport the fix for ET_DYN addresses
|
||||||
* Tue Dec 16 2008 tiwai@suse.de
|
* Tue Dec 16 2008 tiwai@suse.de
|
||||||
- Fix dwfl_getmodules(), assert in systemtap (bnc#448331)
|
- Fix dwfl_getmodules(), assert in systemtap (bnc#448331)
|
||||||
- Fix libebl1 dependency
|
- Fix libebl1 dependency
|
||||||
|
Loading…
Reference in New Issue
Block a user