mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-28 05:06:43 +00:00
elfutils: update to elfutils-0.159. disable nls
This commit is contained in:
parent
b3ba69ced0
commit
d7e9849fe6
@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="elfutils"
|
PKG_NAME="elfutils"
|
||||||
PKG_VERSION="0.158"
|
PKG_VERSION="0.159"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
@ -35,6 +35,7 @@ PKG_AUTORECONF="yes"
|
|||||||
PKG_CONFIGURE_OPTS_TARGET="utrace_cv_cc_biarch=false \
|
PKG_CONFIGURE_OPTS_TARGET="utrace_cv_cc_biarch=false \
|
||||||
--disable-werror \
|
--disable-werror \
|
||||||
--disable-progs \
|
--disable-progs \
|
||||||
|
--disable-nls \
|
||||||
--with-zlib \
|
--with-zlib \
|
||||||
--without-bzlib \
|
--without-bzlib \
|
||||||
--without-lzma"
|
--without-lzma"
|
||||||
|
@ -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
Loading…
x
Reference in New Issue
Block a user