Skip to content

Commit

Permalink
Avoid partial munmap
Browse files Browse the repository at this point in the history
...which caused issues like

> ==42==ERROR: AddressSanitizer failed to deallocate 0x32 (50) bytes at address 0x117e0000 (error code: 28)
> ==42==Cannot dump memory map on emscriptenAddressSanitizer: CHECK failed: sanitizer_common.cpp:81 "((0 && "unable to unmmap")) != (0)" (0x0, 0x0) (tid=288045824)
>     #0 0x14f73b0c in __asan::CheckUnwind()+0x14f73b0c (this.program+0x14f73b0c)
>     llvm#1 0x14f8a3c2 in __sanitizer::CheckFailed(char const*, int, char const*, unsigned long long, unsigned long long)+0x14f8a3c2 (this.program+0x14f8a3c2)
>     llvm#2 0x14f7d6e1 in __sanitizer::ReportMunmapFailureAndDie(void*, unsigned long, int, bool)+0x14f7d6e1 (this.program+0x14f7d6e1)
>     llvm#3 0x14f81fbd in __sanitizer::UnmapOrDie(void*, unsigned long)+0x14f81fbd (this.program+0x14f81fbd)
>     llvm#4 0x14f875df in __sanitizer::SuppressionContext::ParseFromFile(char const*)+0x14f875df (this.program+0x14f875df)
>     llvm#5 0x14f74eab in __asan::InitializeSuppressions()+0x14f74eab (this.program+0x14f74eab)
>     llvm#6 0x14f73a1a in __asan::AsanInitInternal()+0x14f73a1a (this.program+0x14f73a1a)

when trying to use an ASan suppressions file under Emscripten:  Even though it
would be considered OK by SUSv4, the Emscripten runtime states "We don't support
partial munmapping" (see
<emscripten-core/emscripten@f4115eb>
"Implement MAP_ANONYMOUS on top of malloc in STANDALONE_WASM mode (llvm#16289)").
  • Loading branch information
stbergmann committed May 14, 2024
1 parent 292b300 commit 6dfab83
Showing 1 changed file with 1 addition and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ void SuppressionContext::ParseFromFile(const char *filename) {
}

Parse(file_contents);
UnmapOrDie(file_contents, contents_size);
UnmapOrDie(file_contents, buffer_size);
}

bool SuppressionContext::Match(const char *str, const char *type,
Expand Down

0 comments on commit 6dfab83

Please sign in to comment.