this comment largely assumes you know how to create test harnesses to sanity check your code.
from my experience, while glibc checks are useful, you need to know about more cases such as overflows, overruns, races, etc. In my experience, I used valgrind withub a test harness to create the conditions i'd expect.
The glibc approach doesn't seem to compete feature wise with valgrind. It seems to me that glibc bloat is caused by this.
PS: I have ran valgrind in production, You just have to carefully canary it.
I suspect the same would happen with glibc. To be fair, the maintainers for these packages have a lot on their plates, and tend to pay more attention to submitters who they see often, so one-shots like these just don't bubble up to the top.
Speaking as someone who exploits programs for fun...that would not be a good idea at all. Not aborting in the face of _obvious_ memory corruption means continuing onwards with the memory in some weird state which could cause much more serious problems later on. And, it makes an attacker’s job a lot easier if they don’t have to worry about triggering malloc’s checks while gradually corrupting your heap and taking control of the program through a memory error.
from my experience, while glibc checks are useful, you need to know about more cases such as overflows, overruns, races, etc. In my experience, I used valgrind withub a test harness to create the conditions i'd expect.
The glibc approach doesn't seem to compete feature wise with valgrind. It seems to me that glibc bloat is caused by this.
PS: I have ran valgrind in production, You just have to carefully canary it.