Description
I have seen the following error on some of our internal test machines
Failed Tests (5):
AddressSanitizer-Unit :: ./Asan-x86_64-calls-Dynamic-Test.exe/AddressSanitizer/MemCpyOOBTest
AddressSanitizer-Unit :: ./Asan-x86_64-inline-Dynamic-Test.exe/AddressSanitizer/MemCpyOOBTest
AddressSanitizer-x86_64-windows-dynamic :: TestCases/Windows/dll_intercept_memcpy_indirect.cpp
AddressSanitizer-x86_64-windows-dynamic :: TestCases/Windows/intercept_memcpy.cpp
AddressSanitizer-x86_64-windows-dynamic :: TestCases/memset_test.cpp
After some investigation, with the latest Windows setup(these failures only reproduced on those setup) and dynamic setup(the static test config does not have these failures),
#elif SANITIZER_WINDOWS64
#define PLATFORM_HAS_DIFFERENT_MEMCPY_AND_MEMMOVE 0
is not true anymore. The memcpy
is not the alias for memmove
, and we will have to intercept them both. However, simply changing this to 1
for Windows, although it can fix the failures for latest Windows, would bring huge regression for not-so-update-to-date Windows.
I have no further idea how to solve this problem, but I think this would affect more users with time after users update their OS and runtime. And I don't sure which part of the environment is causing this difference.
System information:
OS: Microsoft Windows 11 Enterprise LTSC 24H2 10.0.26100
msvcrt.dll version: 7.0.26100.1882
vcruntime140.dll version: 14.42.34433.0
I don't know if this information is enough, and I am happy to provide other information if needed.