Hi! (Added nickc to the CC, see below)
On Wed, Jan 15, 2025 at 01:52:24PM +0100, Miro Hrončok wrote:
> On 15. 01. 25 10:18, Robin Jarry wrote:
> >I found out that rpmlint errors out without producing any meaningful result
> >when the analyzed RPMs contain binaries:
> >
> ><mock-chroot> sh-5.2# strace -f -e trace=execve -s 65536 rpmlint
> >build/RPMS/aerc-*.rpm
> >...
> >[pid 107] execve("/usr/bin/readelf", ["readelf", "-W", "-l",
> >"/tmp/rpmlint.aerc-debuginfo-0.19.0-1.fc42.x86_64.rpm.5obt7_7n/usr/lib/debug/usr/bin/aerc-0.19.0-1.fc42.x86_64.debug",
> > "--debug-dump=no-follow-links"], 0x7fe85e1a3590 /* 27 vars */) = 0
> >...
> >E: fatal error while reading aerc-debuginfo-0.19.0-1.fc42.x86_64.rpm:
> >'utf-8' codec can't decode byte 0xe4 in position 455: invalid continuation
> >byte
> >
> >...
> >
> >Relevant package versions:
> >
> >binutils-2.43.50-9.fc42.x86_64
> >file-5.45-8.fc42.x86_64
> >gcc-14.2.1-6.fc42.x86_64
> >rpmlint-2.5.0-10.fc42.x86_64
> >
> >I suspect this is a bug in binutils/files which should not print binary code
> >in lieu of the interpreter name. But maybe the culprit is in gcc.
> >
> >If anyone has an idea, I'd like some help.
>
> This should be fixed in rpmlint 2.6 currently available in rawhide.
> I see you actually use rawhide, so just updating rpmlint should do.
>
> https://github.com/rpm-software-management/rpmlint/issues/1147
I think that helps rpmlint not error out, so good!
But I also think this is a bug in binutils readelf (CCing nickc).
It really should not even try to print the "interpreter" of a separate
debuginfo file. For elfutils eu-readelf we have the following comment
(and code) to prevent printing gibberish for the interpreter when we
see a PT_INTERP segment:
/* If we are sure the file offset is valid then we can show
the user the name of the interpreter. We check whether
there is a section at the file offset. Normally there
would be a section called ".interp". But in separate
.debug files it is a NOBITS section (and so doesn't match
with gelf_offscn). Which probably means the offset is
not valid another reason could be because the ELF file
just doesn't contain any section headers, in that case
just play it safe and don't display anything. */
Cheers,
Mark
--
_______________________________________________
devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct:
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives:
https://lists.fedoraproject.org/archives/list/[email protected]
Do not reply to spam, report it:
https://pagure.io/fedora-infrastructure/new_issue