[binutils-gdb/binutils-2_36-branch] DWARF-5: Fix parsing DWARF-5 line number tables

H.J. Lu hjl@sourceware.org
Sun Jan 24 02:20:40 GMT 2021


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=74c1e3df55c9e418e231a1ef36ff706688a3088b

commit 74c1e3df55c9e418e231a1ef36ff706688a3088b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jan 23 18:17:37 2021 -0800

    DWARF-5: Fix parsing DWARF-5 line number tables
    
    Advance rngs_ptr when parsing DW_RLE_offset_pair, which was missing in
    
    commit c3757b583d2448a5996e83e374fb96ac7938da35
    Author: Mark Wielaard <mark@klomp.org>
    Date:   Tue Aug 25 15:33:00 2020 +0100
    
        Fix the linker's handling of DWARF-5 line number tables.
    
            PR binutils/27231
            * dwarf2.c (read_rnglists): Advance rngs_ptr after
            _bfd_safe_read_leb128 when parsing DW_RLE_offset_pair.
    
    (cherry picked from commit 18454c151f5824564130ba626bd90e9de30444ef)

Diff:
---
 bfd/ChangeLog | 6 ++++++
 bfd/dwarf2.c  | 2 ++
 2 files changed, 8 insertions(+)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 75ad21752ae..a2622589b39 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2021-01-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR binutils/27231
+	* dwarf2.c (read_rnglists): Advance rngs_ptr after
+	_bfd_safe_read_leb128 when parsing DW_RLE_offset_pair.
+
 2021-01-20  Alan Modra  <amodra@gmail.com>
 
 	* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Don't assume
diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
index d1770ae4fdb..292d60c33d4 100644
--- a/bfd/dwarf2.c
+++ b/bfd/dwarf2.c
@@ -3265,9 +3265,11 @@ read_rnglists (struct comp_unit *unit, struct arange *arange,
 	  low_pc = base_address;
 	  low_pc += _bfd_safe_read_leb128 (abfd, rngs_ptr, &bytes_read,
 					   FALSE, rngs_end);
+	  rngs_ptr += bytes_read;
 	  high_pc = base_address;
 	  high_pc += _bfd_safe_read_leb128 (abfd, rngs_ptr, &bytes_read,
 					    FALSE, rngs_end);
+	  rngs_ptr += bytes_read;
 	  break;
 
 	case DW_RLE_start_end:


More information about the Binutils-cvs mailing list