[OE-core] [PATCH 1/2 RFC] rpm: Add workaround for debugedit-segv
Phil Blundell
pb at pbcl.net
Tue Mar 26 10:38:27 UTC 2013
On Mon, 2013-03-25 at 16:47 -0500, Mark Hatle wrote:
> I've looked at the code some more. It does checksum the header itself and then
> if it's got contents, it also adds the contents to the checksum.. That is where
> the failure appears to be happening:
>
> if (u.shdr.sh_type != SHT_NOBITS)
> {
> Elf_Data *d = elf_rawdata (dso->scn[i], NULL);
> if (d == NULL)
> goto bad;
> process (d->d_buf, d->d_size);
> }
>
> So it's specifically checking for SHT_NOBITS, but it's matching so it falls
> through and d->d_buf == 0, causing the failure. I'll keep investigating, but
> somehow that value (u.shdr.sh_type) is wrong [or at least unexpected!].
Ah. If a NOBITS section is getting reported as something else then it
seems that this must clearly be a bug in libelf and ought to be fixed
there rather than working around it in rpm. What do you actually get as
u.shdr.sh_type?
p.
More information about the Openembedded-core
mailing list