ElectricFence Exiting: mprotect() failed: Cannot allocate memory

Another option is to force a segfault, ie assign to the area when the pointer is null. The values of the various CPU registers, especially the program counter, can then (in combination with a disasembler) be used to determine the location of the crash and hence, the condition at the time of the test.

Reply to
Rainer Weikusat
Loading thread data ...

I am trying to use DUMA to find the problem and am getting the following error when I try to link to the DUMA library:

# LD_PRELOAD=/lib/libduma.a /bin/snmpd & # ERROR: ld.so: object '/lib/libduma.a' from LD_PRELOAD cannot be preloaded: ignored.

What can cause this error when using LD_PRELOAD?

Reply to
Bill

Only an executable object (.e_type is ET_DYN or ET_EXEC) can be pre-loaded. An archive library (*.a) that contains ET_REL files cannot be pre-loaded.

Reply to
John Reiser

It amazes me that in all this time you never managed to answer a simple question: is the crash *in* malloc, or is it in your own code?

You are continuing to debug this as if there is malloc corruption, and this will prove futile if the crash is (as I suspect) in your own code instead.

You can only preload shared libraries.

Besides, reading man page for libduma, I see that it uses *exact* same strategy as efence: a guard page after every allocation.

So, once you manage to build a shared libduma.so, and preload it; it will most likely fail just like efence did, because the overhead of guard pages is too great for majority of real-world (non-toy) applications.

Cheers,

--
In order to understand recursion you must first understand recursion.
Remove /-nsp/ for email.
Reply to
Paul Pluzhnikov

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.