This is the mail archive of the
elfutils-devel@sourceware.org
mailing list for the elfutils project.
Re: Rerequesting dwarf_tag on a die with invalid abbrev code
- From: Mark Wielaard <mjw at redhat dot com>
- To: elfutils-devel at lists dot fedorahosted dot org
- Date: Wed, 16 Mar 2011 22:16:18 +0100
- Subject: Re: Rerequesting dwarf_tag on a die with invalid abbrev code
Hi Petr,
On Wed, 2011-03-16 at 18:13 +0100, Petr Machata wrote:
> this is similar to the fix that I did recently for rerequesting
> dwarf_tag for DIE with zero abbrev code, except this time the DIE has
> non-zero invalid code. On such a DIE, the following SEGVs libdw:
>
> die = dwarf_offdie (dw, 11, &die_mem);
> dwarf_tag (die);
> die = dwarf_offdie (dw, 11, &die_mem)
> dwarf_tag (die);
>
> The fix and a test case are on pmachata/rerequest-tag.
That fix makes sense to me. Although I had to triple check why it was
correct.
<pedantic> The comment and the return inside the while loop was
confusing me at first. It would maybe be slightly easier on the reader
to replace the "return DWARF_END_ABBREV;" with a "break;", so that your
"at the end already" logic triggers always instead of only on the second
(or third, etc.) call. </pedantic>
Cheers,
Mark
BTW. I wouldn't mind seeing small patches like that on the list. In this
case I needed to pull anyway, to see it in full context, but otherwise
it is slightly easier/quicker to review.