Date: Thu, 30 May 2019 10:01:53 -0400 From: Rich Felker <dalias@...c.org> To: musl@...ts.openwall.com Subject: Re: How to get base address of heap arenas On Thu, May 30, 2019 at 03:27:24PM +0200, Szabolcs Nagy wrote: > * sva sva <azharivs@...il.com> [2019-05-30 08:59:46 -0400]: > > I am writing a heap walk program in C and would like to know if there is > > anything like the concept of arenas in musl. Basically, I need to have a > > pointer to the base address of all my allocated heaps. Unfortunately > > inspecting the musl code I found none. > > there is no such concept as "heap arena" visible to user > code, so almost surely you don't "need a pointer to the > base address" of it. > > try to describe what exactly you want to do (not in terms > of libc internals, but in terms that make sense for user > code) > > (do you want to get all memory mappings? -> try /proc/self/maps) > (do you want to track malloc behaviour? -> try malloc interposition) > (etc) To further clarify, the current allocator implementation has no global view of "the heap". It sees only free chunks and the headers or footers of the immediately adjacent-in-address-space allocated chunks. It's likely that the future replacement will have global tracking that further helps ensure integrity against heap corruption attacks, but it won't be a public API or something necessarily stable between versions. If you want a debugging malloc, you need to interpose one; for the past few releases, musl has supported malloc interposition. Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.