From ff60ea4e2646541b95c17f85107832dca1d28c29 Mon Sep 17 00:00:00 2001 From: Keith Seitz Date: Tue, 11 Apr 2023 10:24:10 -0700 Subject: [PATCH] Backport fix for binutils/29988 --- _gdb.spec.Patch.include | 4 ++++ _gdb.spec.patch.include | 1 + _patch_order | 1 + gdb-binutils29988-read_indexed_address.patch | 24 ++++++++++++++++++++ gdb.spec | 4 ++++ 5 files changed, 34 insertions(+) create mode 100644 gdb-binutils29988-read_indexed_address.patch diff --git a/_gdb.spec.Patch.include b/_gdb.spec.Patch.include index a5806be..ebd3b27 100644 --- a/_gdb.spec.Patch.include +++ b/_gdb.spec.Patch.include @@ -236,3 +236,7 @@ Patch055: gdb-rhbz2177655-aarch64-pauth-valid-regcache.patch # (Tom Tromey, RHBZ 2183595) Patch056: gdb-rhbz2183595-rustc-inside_main.patch +# Backport "Fix a potential illegal memory access in the BFD library..." +# (Nick Clifton, binutils/29988) +Patch057: gdb-binutils29988-read_indexed_address.patch + diff --git a/_gdb.spec.patch.include b/_gdb.spec.patch.include index 46efc44..c13c1cc 100644 --- a/_gdb.spec.patch.include +++ b/_gdb.spec.patch.include @@ -54,3 +54,4 @@ %patch -p1 -P054 %patch -p1 -P055 %patch -p1 -P056 +%patch -p1 -P057 diff --git a/_patch_order b/_patch_order index 1c80644..8630b24 100644 --- a/_patch_order +++ b/_patch_order @@ -54,3 +54,4 @@ gdb-libexec-add-index.patch gdb-rhbz1553104-s390x-arch12-test.patch gdb-rhbz2177655-aarch64-pauth-valid-regcache.patch gdb-rhbz2183595-rustc-inside_main.patch +gdb-binutils29988-read_indexed_address.patch diff --git a/gdb-binutils29988-read_indexed_address.patch b/gdb-binutils29988-read_indexed_address.patch new file mode 100644 index 0000000..af44d12 --- /dev/null +++ b/gdb-binutils29988-read_indexed_address.patch @@ -0,0 +1,24 @@ +From FEDORA_PATCHES Mon Sep 17 00:00:00 2001 +From: Nick Clifton +Date: Wed, 11 Jan 2023 12:13:46 +0000 +Subject: gdb-binutils29988-read_indexed_address.patch + +;; Backport "Fix a potential illegal memory access in the BFD library..." +;; (Nick Clifton, binutils/29988) + + PR 29988 + * dwarf2.c (read_indexed_address): Fix check for an out of range + offset. + +diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c +--- a/bfd/dwarf2.c ++++ b/bfd/dwarf2.c +@@ -1412,7 +1412,7 @@ read_indexed_address (uint64_t idx, struct comp_unit *unit) + offset += unit->dwarf_addr_offset; + if (offset < unit->dwarf_addr_offset + || offset > file->dwarf_addr_size +- || file->dwarf_addr_size - offset < unit->offset_size) ++ || file->dwarf_addr_size - offset < unit->addr_size) + return 0; + + info_ptr = file->dwarf_addr_buffer + offset; diff --git a/gdb.spec b/gdb.spec index 886616c..cef8cbf 100644 --- a/gdb.spec +++ b/gdb.spec @@ -1249,6 +1249,10 @@ fi %endif %changelog +* Tue Apr 11 2023 Keith Seitz +- Backport "Fix a potential illegal memory access in the BFD library..." + (Nick Clifton, binutils/29988) + * Fri Mar 31 2023 Keith Seitz - 13.1-4 - Backport "Fix crash in inside_main_func" (Tom Tromey, RHBZ 2183595)