[PATCH v2 05/28] readelf: last tag as empty string triggers corrupt string data incorrectly
Matthieu Longo
matthieu.longo@arm.com
Fri May 2 10:32:37 GMT 2025
---
binutils/readelf.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/binutils/readelf.c b/binutils/readelf.c
index dd1871d8c75..cf02b23b40a 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -17779,12 +17779,13 @@ display_tag_value (signed int tag,
else if (tag & 1)
{
/* PR 17531 file: 027-19978-0.004. */
- size_t maxlen = (end - p) - 1;
+ size_t maxlen = end - p;
putchar ('"');
if (maxlen > 0)
{
- print_symbol_name ((int) maxlen, (const char *) p);
+ if (maxlen - 1 > 0) /* Don't try to print an empty string. */
+ print_symbol_name ((int) maxlen, (const char *) p);
p += strnlen ((char *) p, maxlen) + 1;
}
else
--
2.49.0
More information about the Binutils
mailing list