[binutils-gdb] Re: loongarch readelf support
Alan Modra
amodra@sourceware.org
Sat Jun 3 08:06:35 GMT 2023
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=89c70cd358b8fa46b84cd100efc95495ff0160ae
commit 89c70cd358b8fa46b84cd100efc95495ff0160ae
Author: Alan Modra <amodra@gmail.com>
Date: Sat Jun 3 17:16:04 2023 +0930
Re: loongarch readelf support
Another segfault.
* readelf.c (target_specific_reloc_handling): Sanity check
loongarch reloc r_offset.
Diff:
---
binutils/readelf.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 042d2301517..23d3e21bea6 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -14021,8 +14021,9 @@ target_specific_reloc_handling (Filedata *filedata,
unsigned int reloc_size = 0;
int leb_ret = 0;
- value = read_leb128 (start + reloc->r_offset, end, false,
- &reloc_size, &leb_ret);
+ if (reloc->r_offset < (size_t) (end - start))
+ value = read_leb128 (start + reloc->r_offset, end, false,
+ &reloc_size, &leb_ret);
if (leb_ret != 0 || reloc_size == 0 || reloc_size > 8)
error (_("LoongArch ULEB128 field at 0x%lx contains invalid "
"ULEB128 value\n"),
More information about the Binutils-cvs
mailing list