[PATCH v3 05/26] readelf: last tag as empty string triggers corrupt string data incorrectly

Matthieu Longo matthieu.longo@arm.com
Wed Jun 18 10:39:30 GMT 2025


On 2025-06-10 18:22, Richard Earnshaw wrote:
> On 09/05/2025 16:12, Matthieu Longo wrote:
>> ---
>>   binutils/readelf.c | 6 ++++--
>>   1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/binutils/readelf.c b/binutils/readelf.c
>> index dd1871d8c75..88edf9246cc 100644
>> --- a/binutils/readelf.c
>> +++ b/binutils/readelf.c
>> @@ -17779,12 +17779,14 @@ 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);
>> +      maxlen -= 1; /* Remove \0 from the character count.  */
>> +      if (maxlen > 0) /* Don't try to print an empty string.  */
>> +        print_symbol_name ((int) maxlen, (const char *) p);
>>         p += strnlen ((char *) p, maxlen) + 1;
>>       }
>>         else
> 
> This looks sensible, but it's outside my scope as a port maintainer. 
> Really, though, this should be sent as a separate patch as it's not 
> directly related to the rest of the series.
> 
> A better commit message that doesn't try to write everything in the 
> summary line would help here too; then you aren't constrained to keeping 
> everything under ~70 chars and can write proper sentences.
> 
> R.

Sent as a separate patch: 
https://inbox.sourceware.org/binutils/20250618102752.1011070-1-matthieu.longo@arm.com/
Feel free to comment on the description.

Matthieu


More information about the Binutils mailing list