Reputation: 4578
I got the following listing when running dr.memory on my application, which uses openssl:
Error #476: UNADDRESSABLE ACCESS beyond heap bounds: reading 4 byte(s)
KERNELBASE.dll!FlsGetValue
??:0
MSVCR110.dll!_crtFlsGetValue
??:0
MSVCR110.dll!wcsnlen
??:0
LIBEAY32.dll!ERR_unload_strings
??:0
LIBEAY32.dll!ERR_load_ERR_strings
??:0
LIBEAY32.dll!ERR_load_crypto_strings
??:0
SSLEAY32.dll!SSL_load_error_strings
??:0
Now, there are a few strange things about this:
SSL_load_error_strings
takes no arguments. I can't see how it could have a memory error in it as openSSL is a widely used library (unless my process is already dying due to heap corruption or something, of course)SSL_load_error_strings
be calling ERR_unload_strings
? I took a quick look at the source and it doesn't seem to, although there could be some inlining happening somewhere to make it hard to spot, I guess.wcsnlen
be calling _crtFlsGetValue
? I can't imagine that it needs fiber-local storage (and I can't see how it would, since I'm not using fibers anyway...)Basically, my question is, can I trust the callstacks generated by dr.memory at all?
Upvotes: 1
Views: 129