[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