mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-25 00:12:56 +00:00
elfutils: fix CVE-2014-0172
Patch taken from upstream mailing-list.
This commit is contained in:
parent
adc65e998d
commit
b4df087f14
32
pkgs/development/tools/misc/elfutils/CVE-2014-0172.patch
Normal file
32
pkgs/development/tools/misc/elfutils/CVE-2014-0172.patch
Normal file
@ -0,0 +1,32 @@
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1085663
|
||||
|
||||
Reported-by: Florian Weimer <fweimer at redhat.com>
|
||||
Signed-off-by: Mark Wielaard <mjw at redhat.com>
|
||||
---
|
||||
libdw/dwarf_begin_elf.c | 8 +++++++-
|
||||
2 files changed, 12 insertions(+), 1 deletions(-)
|
||||
|
||||
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
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Create descriptor from ELF descriptor for processing file.
|
||||
- Copyright (C) 2002-2011 Red Hat, Inc.
|
||||
+ Copyright (C) 2002-2011, 2014 Red Hat, Inc.
|
||||
This file is part of elfutils.
|
||||
Written by Ulrich Drepper <drepper at redhat.com>, 2002.
|
||||
|
||||
@@ -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;
|
@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
|
||||
};
|
||||
|
||||
patches = [
|
||||
./CVE-2014-0172.patch
|
||||
(fetchurl {
|
||||
url = "http://fedorahosted.org/releases/e/l/elfutils/${version}/elfutils-portability.patch";
|
||||
sha256 = "0w8i94x9hqirgs2lwcd1g36s77r5svh4j1fgcrd6lx5w18vch0di";
|
||||
|
Loading…
Reference in New Issue
Block a user