[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