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.