Hi,

On Fri, 2022-04-01 at 16:15 +0200, Mark Wielaard wrote:
> elf_getdata_rawchunk keeps a list of Elf_Data_Chunk to track which
> Elf_Data structures have already been requested. This allows elf_end
> to clean up all internal data structures and the Elf_Data d_buf if
> it was malloced.
> 
> But it didn't check if a chunk was already requested earlier. This
> meant that if for example dwelf_elf_gnu_build_id was called multiple
> times to lookup a build-id from the phdrs a new Elf_Data_Chunk was
> created. This could slowly leak memory.
> 
> So also keep track of the offset from which the size and type of
> the rawdata was requested so we can return existing data if it is
> requested multiple times.
> 
> Note that the current cache is a simple linked list but the chain
> is normally not that long. It is normally used to get chunks from
> the phdrs, and there are normally less than 10.

I pushed this.

Cheers,

Mark

Reply via email to