[PATCH v3 2/2] readelf: invalid error message triggered when last tag is an empty string

Richard Earnshaw Richard.Earnshaw@arm.com
Tue Jun 24 14:30:03 GMT 2025


On 24/06/2025 11:01, Jan Beulich wrote:
> On 24.06.2025 11:01, Matthieu Longo wrote:
>> Disclaimer: this issue cannot occur with Object Attributes v1 (OAv1) while
>> using the GNU binutils because a value of '\0' (empty string) for a tag
>> with a string value is considered as the default value for the attribute,
>> and consequently is eliminated by gas from the output object file during
>> the serialization.
>>
>> An empty string is a valid value for a NTBS tag in both OAv1 and OAv2 [1]
>> cases. However, contrarily to OAv1, a OAv2 subsection can be required and
>> so, tags in this subsection might have to be present even if the value is
>> the default. To comply with this requirement, the OAv2 serializer won't
>> drop the default values.
>>
>> In the case where a NTBS tag has the value '\0' and is last in the object
>> attributes section, the current code in readelf used for dumping the object
>> attributes incorrectly detects an overflow, and prints out an error message
>> for a corrupted string tag.
>>
>> This patch fixes the detection of the overflow so that it now accept an
>> empty string in the last tag of the object attributes section.
>>
>> It also fixes the previous tests for the empty NTBS case and the non-null
>> terminated string one. The fix was also tested in the context of OAv2's
>> patch series [1] where the issue was originally detected. No regression
>> was found.
>>
>> [1]: https://inbox.sourceware.org/binutils/20250509151319.88725-1-matthieu
>>       .longo@arm.com/
>> ---
>>   binutils/readelf.c                                      | 8 ++++++--
> 
> Okay as far as this goes.
> 
>>   gas/testsuite/gas/arm/attr-empty-string.d               | 1 -
>>   gas/testsuite/gas/arm/attr-non-null-terminated-string.d | 2 +-
> 
> These will want an Arm maintainer's approval.
> 
> Jan

The Arm bits are OK.

R.


More information about the Binutils mailing list