[PATCH] libdw: handle DW_FORM_indirect when reading attributes
Sat May 1 16:03:37 GMT 2021
On Sat, 2021-05-01 at 17:59 +0200, Mark Wielaard wrote:
> There is __libdw_form_val_compute_len which already handles
> case DW_FORM_indirect:
> get_uleb128 (u128, valp, endp);
> // XXX Is this really correct?
> result = __libdw_form_val_len (cu, u128, valp);
> if (result != (size_t) -1)
> result += valp - startp;
> return (size_t) -1;
> I believe the XXX question can be answered with: Yes, the result is the
> size of the actual FORM data plus the size of the uleb128 encoding that
> FORM (which is valp - startp). And it probably should check like your
> code does that valp != DW_FORM_indirect && valp !=
> DW_FORM_implicit_const. I'll sent a patch to do that.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 1770 bytes
Desc: not available
More information about the Elfutils-devel