Skip to content

Commit 42d5d10

Browse files
committed
add check MemSet
1 parent 1b688aa commit 42d5d10

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

source/loader/layers/sanitizer/asan_interceptor.cpp

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -363,10 +363,15 @@ ur_result_t SanitizerInterceptor::enqueueMemSetShadow(
363363

364364
// Poison shadow memory outside of asan runtime is not allowed, so we
365365
// need to avoid memset's call from being intercepted.
366-
static void *memset_ptr = GetMemFunctionPointer("memset");
367-
assert(nullptr != memset_ptr);
368-
((void *(*)(void *, int, size_t))memset_ptr)(
369-
(void *)ShadowBegin, Value, ShadowEnd - ShadowBegin + 1);
366+
static auto MemSet =
367+
(void *(*)(void *, int, size_t))GetMemFunctionPointer("memset");
368+
if (!MemSet) {
369+
context.logger.error(
370+
"Failed to get 'memset' function from libc.so.6");
371+
return UR_RESULT_ERROR_UNKNOWN;
372+
}
373+
374+
MemSet((void *)ShadowBegin, Value, ShadowEnd - ShadowBegin + 1);
370375
context.logger.debug(
371376
"enqueueMemSetShadow (addr={}, count={}, value={})",
372377
(void *)ShadowBegin, ShadowEnd - ShadowBegin + 1,

0 commit comments

Comments
 (0)