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.


_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to