[Lldb-commits] [PATCH] D69502: [LLDB] [PECOFF] Don't crash in ReadImageDataByRVA for addresses out of range

Martin Storsjö via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Wed Oct 30 04:59:36 PDT 2019


mstorsjo added a comment.

In D69502#1725155 <https://reviews.llvm.org/D69502#1725155>, @mstorsjo wrote:

> In D69502#1725146 <https://reviews.llvm.org/D69502#1725146>, @labath wrote:
>
> > In D69502#1723715 <https://reviews.llvm.org/D69502#1723715>, @mstorsjo wrote:
> >
> > > In D69502#1723549 <https://reviews.llvm.org/D69502#1723549>, @labath wrote:
> > >
> > > > Any way to get a test for this? Maybe creating a object file with a bogus unwind RVA via yaml2obj ?
> > >
> > >
> > > Do we have a suitable test as basis for it? I'm not quite sure which way is the most compact way of achieving that. A small couple function exe with SEH or dwarf (eh_frame) unwind info, without debug info, with a crash/int3 in a nested function? Or just some image unwind commands so it doesn't need executing?
> >
> >
> > We have some files that might be usable as a basis for this, but I don't know which one would be the best, as I don't know what you need here. What do you need to do in order to reproduce the crash? Would it be possible to just set the export table RVA to some bogus value? That should be trigerred by just constructing the module symbol table...
>
>
> Ok, I'll look at it later to see if I can make some broken file to trigger this condition.


I gave this some amount of tries, but my files with broken unwind info doesn't trigger it. It happened originally unreliably on arm64.

Ok to proceed with it without a testcase?

I did test crafting a file with a bogus export table RVA as well, and that crashes lldb elsewhere, due to an unchecked Expected<> which contained an error. Will try to look into that one separately later...


Repository:
  rLLDB LLDB

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69502/new/

https://reviews.llvm.org/D69502





More information about the lldb-commits mailing list