From: Dmitry Vyukov Date: Mon, 20 Feb 2023 10:58:15 +0000 (+0100) Subject: asan: fix crash in strdup on malloc failure X-Git-Tag: upstream/17.0.6~16970 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=99c7664bd4be4a2e719415a18ca80fcf9a619a5e;p=platform%2Fupstream%2Fllvm.git asan: fix crash in strdup on malloc failure There are some programs that try to handle all malloc failures. Let's allow testing of such programs. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D144374 --- diff --git a/compiler-rt/lib/asan/asan_interceptors.cpp b/compiler-rt/lib/asan/asan_interceptors.cpp index 8170082..a4084c8 100644 --- a/compiler-rt/lib/asan/asan_interceptors.cpp +++ b/compiler-rt/lib/asan/asan_interceptors.cpp @@ -453,7 +453,9 @@ INTERCEPTOR(char*, strdup, const char *s) { } GET_STACK_TRACE_MALLOC; void *new_mem = asan_malloc(length + 1, &stack); - REAL(memcpy)(new_mem, s, length + 1); + if (new_mem) { + REAL(memcpy)(new_mem, s, length + 1); + } return reinterpret_cast(new_mem); } @@ -469,7 +471,9 @@ INTERCEPTOR(char*, __strdup, const char *s) { } GET_STACK_TRACE_MALLOC; void *new_mem = asan_malloc(length + 1, &stack); - REAL(memcpy)(new_mem, s, length + 1); + if (new_mem) { + REAL(memcpy)(new_mem, s, length + 1); + } return reinterpret_cast(new_mem); } #endif // ASAN_INTERCEPT___STRDUP