I just ran it in a loop on a simple backtrace done using DWARF info, and one 
done using EXIDX info, and neither of them seems to leak in my test.  But I’m 
not sure whether there are other edge cases that would need to be examined.

From: [email protected] [mailto:[email protected]] On Behalf Of Arun 
Sharma
Sent: Thursday, May 09, 2013 9:52 AM
To: Fischer, Matt
Cc: [email protected]; Tommi Rantala; Ken Werner
Subject: Re: [Libunwind-devel] Crash when unwinding using ARM exidx info

+Ken, Tommi

On Tue, May 7, 2013 at 3:58 PM, Fischer, Matt 
<[email protected]<mailto:[email protected]>> wrote:


I think the right fix is to change the condition to:

  else if (pi->unwind_info && pi->format == UNW_INFO_FORMAT_TABLE)

This works, because the DWARF code sets pi->format to that value when 
allocating an unwind_info, but the exidx code sets it instead to 
UNW_INFO_FORMAT_ARM_EXIDX.  But I'm not very familiar with this code, so I'm 
not positive this is the correct fix.  Could somebody let me know whether I'm 
on the right track?  If so, I'll happily put a patch together.

I think your analysis is right, but I'm not convinced that we're properly 
freeing memory here. Do you see leaks if you unwind in a loop?

 -Arun


________________________________

CONFIDENTIALITY NOTICE: This email and any attachments are for the sole use of 
the intended recipient(s) and contain information that may be confidential 
and/or legally privileged. If you have received this email in error, please 
notify the sender by reply email and delete the message. Any disclosure, 
copying, distribution or use of this communication (including attachments) by 
someone other than the intended recipient is prohibited. Thank you.
_______________________________________________
Libunwind-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/libunwind-devel

Reply via email to