Update to 0.159.
This commit is contained in:
parent
561f4c0405
commit
d6d5aa0216
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,3 +4,4 @@
|
|||||||
/hello_aarch64.ko.bz2
|
/hello_aarch64.ko.bz2
|
||||||
/testfile_aarch64_core.bz2
|
/testfile_aarch64_core.bz2
|
||||||
/elfutils-0.158.tar.bz2
|
/elfutils-0.158.tar.bz2
|
||||||
|
/elfutils-0.159.tar.bz2
|
||||||
|
2
Makefile
2
Makefile
@ -1,4 +1,4 @@
|
|||||||
patches := $(patsubst %,elfutils-%.patch,robustify portability)
|
patches := $(patsubst %,elfutils-%.patch,portability)
|
||||||
|
|
||||||
.PHONY: patches
|
.PHONY: patches
|
||||||
patches: $(patches)
|
patches: $(patches)
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
commit 7f1eec317db79627b473c5b149a22a1b20d1f68f
|
|
||||||
Author: Mark Wielaard <mjw@redhat.com>
|
|
||||||
Date: Wed Apr 9 11:33:23 2014 +0200
|
|
||||||
|
|
||||||
CVE-2014-0172 Check for overflow before calling malloc to uncompress data.
|
|
||||||
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=1085663
|
|
||||||
|
|
||||||
Reported-by: Florian Weimer <fweimer@redhat.com>
|
|
||||||
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
|
||||||
|
|
||||||
diff --git a/libdw/dwarf_begin_elf.c b/libdw/dwarf_begin_elf.c
|
|
||||||
index 79daeac..34ea373 100644
|
|
||||||
--- a/libdw/dwarf_begin_elf.c
|
|
||||||
+++ b/libdw/dwarf_begin_elf.c
|
|
||||||
@@ -282,6 +282,12 @@ check_section (Dwarf *result, GElf_Ehdr *ehdr, Elf_Scn *scn, bool inscngrp)
|
|
||||||
memcpy (&size, data->d_buf + 4, sizeof size);
|
|
||||||
size = be64toh (size);
|
|
||||||
|
|
||||||
+ /* Check for unsigned overflow so malloc always allocated
|
|
||||||
+ enough memory for both the Elf_Data header and the
|
|
||||||
+ uncompressed section data. */
|
|
||||||
+ if (unlikely (sizeof (Elf_Data) + size < size))
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
Elf_Data *zdata = malloc (sizeof (Elf_Data) + size);
|
|
||||||
if (unlikely (zdata == NULL))
|
|
||||||
break;
|
|
@ -1,62 +0,0 @@
|
|||||||
commit 65cefbd0793c0f9e90a326d7bebf0a47c93294ad
|
|
||||||
Author: Josh Stone <jistone@redhat.com>
|
|
||||||
Date: Tue Mar 11 10:19:28 2014 -0700
|
|
||||||
|
|
||||||
libdwfl: dwfl_module_getdwarf.c (open_elf) only (re)set mod->e_type once.
|
|
||||||
|
|
||||||
As noted in https://sourceware.org/bugzilla/show_bug.cgi?id=16676#c2 for
|
|
||||||
systemtap, the heuristic used by open_elf to set the kernel Dwfl_Module
|
|
||||||
type to ET_DYN, even if the underlying ELF file e_type was set to
|
|
||||||
ET_EXEC, could trigger erroneously for non-kernel/non-main (debug or
|
|
||||||
aux) files. Make sure we only set the e_type of the module once when
|
|
||||||
processing the main file (when the phdrs can be trusted).
|
|
||||||
|
|
||||||
diff --git a/libdwfl/dwfl_module_getdwarf.c b/libdwfl/dwfl_module_getdwarf.c
|
|
||||||
index c4bd739..f8de80b 100644
|
|
||||||
--- a/libdwfl/dwfl_module_getdwarf.c
|
|
||||||
+++ b/libdwfl/dwfl_module_getdwarf.c
|
|
||||||
@@ -1,5 +1,5 @@
|
|
||||||
/* Find debugging and symbol information for a module in libdwfl.
|
|
||||||
- Copyright (C) 2005-2012 Red Hat, Inc.
|
|
||||||
+ Copyright (C) 2005-2012, 2014 Red Hat, Inc.
|
|
||||||
This file is part of elfutils.
|
|
||||||
|
|
||||||
This file is free software; you can redistribute it and/or modify
|
|
||||||
@@ -77,7 +77,7 @@ open_elf (Dwfl_Module *mod, struct dwfl_file *file)
|
|
||||||
return DWFL_E (LIBELF, elf_errno ());
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (mod->e_type != ET_REL)
|
|
||||||
+ if (ehdr->e_type != ET_REL)
|
|
||||||
{
|
|
||||||
/* In any non-ET_REL file, we compute the "synchronization address".
|
|
||||||
|
|
||||||
@@ -131,11 +131,24 @@ open_elf (Dwfl_Module *mod, struct dwfl_file *file)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- mod->e_type = ehdr->e_type;
|
|
||||||
+ /* We only want to set the module e_type explictly once, derived from
|
|
||||||
+ the main ELF file. (It might be changed for the kernel, because
|
|
||||||
+ that is special - see below.) open_elf is always called first for
|
|
||||||
+ the main ELF file, because both find_dw and find_symtab call
|
|
||||||
+ __libdwfl_getelf first to open the main file. So don't let debug
|
|
||||||
+ or aux files override the module e_type. The kernel heuristic
|
|
||||||
+ below could otherwise trigger for non-kernel/non-main files, since
|
|
||||||
+ their phdrs might not match the actual load addresses. */
|
|
||||||
+ if (file == &mod->main)
|
|
||||||
+ {
|
|
||||||
+ mod->e_type = ehdr->e_type;
|
|
||||||
|
|
||||||
- /* Relocatable Linux kernels are ET_EXEC but act like ET_DYN. */
|
|
||||||
- if (mod->e_type == ET_EXEC && file->vaddr != mod->low_addr)
|
|
||||||
- mod->e_type = ET_DYN;
|
|
||||||
+ /* Relocatable Linux kernels are ET_EXEC but act like ET_DYN. */
|
|
||||||
+ if (mod->e_type == ET_EXEC && file->vaddr != mod->low_addr)
|
|
||||||
+ mod->e_type = ET_DYN;
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ assert (mod->main.elf != NULL);
|
|
||||||
|
|
||||||
return DWFL_E_NOERROR;
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
|||||||
Name: elfutils
|
Name: elfutils
|
||||||
Summary: A collection of utilities and DSOs to handle compiled objects
|
Summary: A collection of utilities and DSOs to handle compiled objects
|
||||||
Version: 0.158
|
Version: 0.159
|
||||||
%global baserelease 3
|
%global baserelease 1
|
||||||
URL: https://fedorahosted.org/elfutils/
|
URL: https://fedorahosted.org/elfutils/
|
||||||
%global source_url http://fedorahosted.org/releases/e/l/elfutils/%{version}/
|
%global source_url http://fedorahosted.org/releases/e/l/elfutils/%{version}/
|
||||||
License: GPLv3+ and (GPLv2+ or LGPLv3+)
|
License: GPLv3+ and (GPLv2+ or LGPLv3+)
|
||||||
@ -44,11 +44,7 @@ Group: Development/Tools
|
|||||||
|
|
||||||
Source: %{?source_url}%{name}-%{version}.tar.bz2
|
Source: %{?source_url}%{name}-%{version}.tar.bz2
|
||||||
|
|
||||||
Patch1: %{?source_url}elfutils-robustify.patch
|
Patch1: %{?source_url}elfutils-portability.patch
|
||||||
Patch2: %{?source_url}elfutils-portability.patch
|
|
||||||
|
|
||||||
Patch3: elfutils-0.158-mod-e_type.patch
|
|
||||||
Patch4: elfutils-0.158-CVE-2014-0172.patch
|
|
||||||
|
|
||||||
%if !%{compat}
|
%if !%{compat}
|
||||||
Release: %{baserelease}%{?dist}
|
Release: %{baserelease}%{?dist}
|
||||||
@ -88,11 +84,11 @@ BuildRequires: xz-devel
|
|||||||
%global _program_prefix eu-
|
%global _program_prefix eu-
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Elfutils is a collection of utilities, including ld (a linker),
|
Elfutils is a collection of utilities, including stack (to show
|
||||||
nm (for listing symbols from object files), size (for listing the
|
backtraces), nm (for listing symbols from object files), size
|
||||||
section sizes of an object or archive file), strip (for discarding
|
(for listing the section sizes of an object or archive file),
|
||||||
symbols), readelf (to see the raw ELF file structures), and elflint
|
strip (for discarding symbols), readelf (to see the raw ELF file
|
||||||
(to check for well-formed ELF files).
|
structures), and elflint (to check for well-formed ELF files).
|
||||||
|
|
||||||
|
|
||||||
%package libs
|
%package libs
|
||||||
@ -199,10 +195,8 @@ for libelf.
|
|||||||
: 'separate_devel_static=%separate_devel_static'
|
: 'separate_devel_static=%separate_devel_static'
|
||||||
: 'scanf_has_m=%scanf_has_m'
|
: 'scanf_has_m=%scanf_has_m'
|
||||||
|
|
||||||
%patch1 -p1 -b .robustify
|
|
||||||
|
|
||||||
%if %{portability}
|
%if %{portability}
|
||||||
%patch2 -p1 -b .portability
|
%patch1 -p1 -b .portability
|
||||||
sleep 1
|
sleep 1
|
||||||
find . \( -name Makefile.in -o -name aclocal.m4 \) -print | xargs touch
|
find . \( -name Makefile.in -o -name aclocal.m4 \) -print | xargs touch
|
||||||
sleep 1
|
sleep 1
|
||||||
@ -213,20 +207,18 @@ sed -i.scanf-m -e 's/%m/%a/g' src/addr2line.c tests/line2addr.c
|
|||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%patch3 -p1 -b .e_type
|
|
||||||
%patch4 -p1 -b .CVE-2014-0172
|
|
||||||
|
|
||||||
find . -name \*.sh ! -perm -0100 -print | xargs chmod +x
|
find . -name \*.sh ! -perm -0100 -print | xargs chmod +x
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# Remove -Wall from default flags. The makefiles enable enough warnings
|
# Remove -Wall from default flags. The makefiles enable enough warnings
|
||||||
# themselves, and they use -Werror. Appending -Wall defeats the cases where
|
# themselves, and they use -Werror. Appending -Wall defeats the cases where
|
||||||
# the makefiles disable some specific warnings for specific code.
|
# the makefiles disable some specific warnings for specific code.
|
||||||
# Also remove -Werror=format-security which doesn't work without
|
# But add -Wformat explicitly for use with -Werror=format-security which
|
||||||
# -Wformat (enabled by -Wall). We enable -Wformat explicitly for some
|
# doesn't work without -Wformat (enabled by -Wall).
|
||||||
# files later.
|
RPM_OPT_FLAGS="${RPM_OPT_FLAGS/-Wall/}"
|
||||||
RPM_OPT_FLAGS=${RPM_OPT_FLAGS/-Wall/}
|
%if !%{compat}
|
||||||
RPM_OPT_FLAGS=${RPM_OPT_FLAGS/-Werror=format-security/}
|
RPM_OPT_FLAGS="${RPM_OPT_FLAGS} -Wformat"
|
||||||
|
%endif
|
||||||
|
|
||||||
%if %{compat}
|
%if %{compat}
|
||||||
# Some older glibc headers can run afoul of -Werror all by themselves.
|
# Some older glibc headers can run afoul of -Werror all by themselves.
|
||||||
@ -238,7 +230,7 @@ COMPAT_CONFIG_FLAGS=""
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
trap 'cat config.log' EXIT
|
trap 'cat config.log' EXIT
|
||||||
%configure --enable-dwz $COMPAT_CONFIG_FLAGS CFLAGS="$RPM_OPT_FLAGS -fexceptions"
|
%configure $COMPAT_CONFIG_FLAGS CFLAGS="$RPM_OPT_FLAGS -fexceptions"
|
||||||
trap '' EXIT
|
trap '' EXIT
|
||||||
make -s %{?_smp_mflags}
|
make -s %{?_smp_mflags}
|
||||||
|
|
||||||
@ -308,6 +300,7 @@ rm -rf ${RPM_BUILD_ROOT}
|
|||||||
%{_includedir}/elfutils/libebl.h
|
%{_includedir}/elfutils/libebl.h
|
||||||
%{_includedir}/elfutils/libdw.h
|
%{_includedir}/elfutils/libdw.h
|
||||||
%{_includedir}/elfutils/libdwfl.h
|
%{_includedir}/elfutils/libdwfl.h
|
||||||
|
%{_includedir}/elfutils/libdwelf.h
|
||||||
%{_includedir}/elfutils/version.h
|
%{_includedir}/elfutils/version.h
|
||||||
%{_libdir}/libebl.a
|
%{_libdir}/libebl.a
|
||||||
%{_libdir}/libasm.so
|
%{_libdir}/libasm.so
|
||||||
@ -335,7 +328,14 @@ rm -rf ${RPM_BUILD_ROOT}
|
|||||||
%{_libdir}/libelf.a
|
%{_libdir}/libelf.a
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Tue Apr 10 2014 Mark Wielaard <mjw@redhat.com> - 0.158-3
|
* Mon May 19 2014 Mark Wielaard <mjw@redhat.com> - 0.159-1
|
||||||
|
- Update to 0.159.
|
||||||
|
- Remove integrated upstream patches:
|
||||||
|
robustify.patch, mod-e_type.patch and CVE-2014-0172.patch.
|
||||||
|
- Remove special handling of now default compile and configure flags:
|
||||||
|
Don't remove -Werror=format-security, don't configure --enable-dwz.
|
||||||
|
|
||||||
|
* Thu Apr 10 2014 Mark Wielaard <mjw@redhat.com> - 0.158-3
|
||||||
- Add elfutils-0.158-CVE-2014-0172.patch (#1085729)
|
- Add elfutils-0.158-CVE-2014-0172.patch (#1085729)
|
||||||
|
|
||||||
* Tue Mar 11 2014 Mark Wielaard <mjw@redhat.com> - 0.158-2
|
* Tue Mar 11 2014 Mark Wielaard <mjw@redhat.com> - 0.158-2
|
||||||
|
Loading…
Reference in New Issue
Block a user