Skip to content

Commit

Permalink
Merge pull request #1934 from yingcong-wu/yc/0806-exclude-shadow-from…
Browse files Browse the repository at this point in the history
…-coredump

[DeviceSanitizer] Exclude shadow memory from coredump file for CPU device.
  • Loading branch information
pbalcer committed Sep 19, 2024
2 parents 2af159d + d619bcd commit 1851492
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 0 deletions.
1 change: 1 addition & 0 deletions source/loader/layers/sanitizer/asan_shadow_setup.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ ur_result_t SetupShadowMemory(uptr &ShadowBegin, uptr &ShadowEnd) {
if (SHADOW_BEGIN == 0) {
return UR_RESULT_ERROR_OUT_OF_HOST_MEMORY;
}
DontCoredumpRange(SHADOW_BEGIN, SHADOW_SIZE);
SHADOW_END = SHADOW_BEGIN + SHADOW_SIZE;
IsShadowMemInited = true;
return UR_RESULT_SUCCESS;
Expand Down
1 change: 1 addition & 0 deletions source/loader/layers/sanitizer/common.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@ bool IsInASanContext();

uptr MmapNoReserve(uptr Addr, uptr Size);
bool Munmap(uptr Addr, uptr Size);
bool DontCoredumpRange(uptr Addr, uptr Size);

void *GetMemFunctionPointer(const char *);

Expand Down
6 changes: 6 additions & 0 deletions source/loader/layers/sanitizer/linux/sanitizer_utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,12 @@ uptr MmapNoReserve(uptr Addr, uptr Size) {

bool Munmap(uptr Addr, uptr Size) { return munmap((void *)Addr, Size) == 0; }

bool DontCoredumpRange(uptr Addr, uptr Size) {
Size = RoundUpTo(Size, EXEC_PAGESIZE);
Addr = RoundDownTo(Addr, EXEC_PAGESIZE);
return madvise((void *)Addr, Size, MADV_DONTDUMP) == 0;
}

void *GetMemFunctionPointer(const char *FuncName) {
void *handle = dlopen(LIBC_SO, RTLD_LAZY | RTLD_NOLOAD);
if (!handle) {
Expand Down

0 comments on commit 1851492

Please sign in to comment.