Inspired by https://github.com/google/sanitizers/issues/626
Calloc interceptor initially allocates memory from temp buffer (to serve dlsyms called during asan_init). There is a chance that some non-instrumented library (or executable) has allocated memory with calloc before asan_init and got pointer from the same temporary buffer which later caused problems with free.
Wait, why is it not ptr - calloc_memory_for_dlsym?