-
由 Caoruihong 提交于
musl的dlopen实现在ld-musl-aarch64-asan.so.1库中,因为这个库是linker, 比asan运行时库libclang_rt.asan.so更早被执行,dlopen中因为使用了动态内存分配, 在asan的hook生效前就已经调用了calloc,等到asan hook生效后再触发了调用realloc, 被asan检测到realloc的内存地址不在asan的动态内存管理范围内从而触发报告asan错误日志, 而asan报告错误日志时正好又需要调用到dl相关函数(dl_iterate_phdr)进行函数栈回溯, 进而导致死锁。 本PR中的修改方法是将linker中使用的内存操作函数进行本地绑定,不让asan运行时库接管, 进而避免此问题场景的出现,本修改仅影响asan版本,正常版本不受影响。 Signed-off-by: NCaoruihong <crh.cao@huawei.com> Change-Id: I499228c658e23ee47c51e18a91cb4b9cbec57722
07d61e4e