diff --git a/CMakeLists.txt b/CMakeLists.txt index 9bf34850d..b205d0861 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -315,6 +315,7 @@ option(BUILD_PRIVACYGUARD "Build Privacy Guard" YES) option(BUILD_CDS "Build CDS - Common Diagnostic Stack" YES) option(BUILD_LIVEEVENTINSPECTOR "Build Live Event Inspector" YES) option(BUILD_SIGNALS "Build Signals" YES) +option(BUILD_SANITIZER "Build Sanitizer" YES) option(LINK_STATIC_DEPENDS "Link dependencies for static build" YES) # Enable Azure Monitor / Application Insights end-point support diff --git a/Solutions/MSTelemetrySDK.sln b/Solutions/MSTelemetrySDK.sln index ef5c2c277..98af6ec6d 100644 --- a/Solutions/MSTelemetrySDK.sln +++ b/Solutions/MSTelemetrySDK.sln @@ -131,6 +131,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liveeventinspector", "..\li EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "signals", "..\lib\modules\signals\signals.vcxitems", "{D5E1C2E4-DF23-4D2E-85F8-DF737C6A9B9D}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sanitizer", "..\lib\modules\sanitizer\sanitizer.vcxitems", "{67F82868-5F53-4337-95F1-811557AE53E4}" +EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution ..\lib\modules\cds\cds.vcxitems*{0299c8ba-03b9-451e-8a52-8df1291173a5}*SharedItemsImports = 9 @@ -143,6 +145,7 @@ Global ..\lib\modules\filter\filter.vcxitems*{1dc6b38a-b390-34ce-907f-4958807a3d42}*SharedItemsImports = 4 ..\lib\modules\liveeventinspector\liveeventinspector.vcxitems*{1dc6b38a-b390-34ce-907f-4958807a3d42}*SharedItemsImports = 4 ..\lib\modules\privacyguard\privacyguard.vcxitems*{1dc6b38a-b390-34ce-907f-4958807a3d42}*SharedItemsImports = 4 + ..\lib\modules\sanitizer\sanitizer.vcxitems*{1dc6b38a-b390-34ce-907f-4958807a3d42}*SharedItemsImports = 4 ..\lib\modules\signals\signals.vcxitems*{1dc6b38a-b390-34ce-907f-4958807a3d42}*SharedItemsImports = 4 ..\lib\pal\desktop\desktop.vcxitems*{1dc6b38a-b390-34ce-907f-4958807a3d42}*SharedItemsImports = 4 Clienttelemetry\Clienttelemetry.vcxitems*{1dc6b38a-b390-34ce-907f-4958807a3d42}*SharedItemsImports = 4 @@ -156,6 +159,7 @@ Global ..\lib\modules\filter\filter.vcxitems*{216a8e97-21f7-4bef-9e52-7f772c177c32}*SharedItemsImports = 4 ..\lib\modules\liveeventinspector\liveeventinspector.vcxitems*{216a8e97-21f7-4bef-9e52-7f772c177c32}*SharedItemsImports = 4 ..\lib\modules\privacyguard\privacyguard.vcxitems*{216a8e97-21f7-4bef-9e52-7f772c177c32}*SharedItemsImports = 4 + ..\lib\modules\sanitizer\sanitizer.vcxitems*{216a8e97-21f7-4bef-9e52-7f772c177c32}*SharedItemsImports = 4 ..\lib\modules\signals\signals.vcxitems*{216a8e97-21f7-4bef-9e52-7f772c177c32}*SharedItemsImports = 4 ..\lib\pal\desktop\desktop.vcxitems*{216a8e97-21f7-4bef-9e52-7f772c177c32}*SharedItemsImports = 4 Clienttelemetry\Clienttelemetry.vcxitems*{216a8e97-21f7-4bef-9e52-7f772c177c32}*SharedItemsImports = 4 @@ -168,6 +172,7 @@ Global ..\lib\modules\filter\filter.vcxitems*{434c594f-cde0-3690-ac0a-9ed854b74092}*SharedItemsImports = 4 ..\lib\modules\liveeventinspector\liveeventinspector.vcxitems*{434c594f-cde0-3690-ac0a-9ed854b74092}*SharedItemsImports = 4 ..\lib\modules\privacyguard\privacyguard.vcxitems*{434c594f-cde0-3690-ac0a-9ed854b74092}*SharedItemsImports = 4 + ..\lib\modules\sanitizer\sanitizer.vcxitems*{434c594f-cde0-3690-ac0a-9ed854b74092}*SharedItemsImports = 4 ..\lib\pal\desktop\desktop.vcxitems*{434c594f-cde0-3690-ac0a-9ed854b74092}*SharedItemsImports = 4 Clienttelemetry\Clienttelemetry.vcxitems*{434c594f-cde0-3690-ac0a-9ed854b74092}*SharedItemsImports = 4 Clienttelemetry\Clienttelemetry.vcxitems*{45d41acc-2c3c-43d2-bc10-02aa73ffc7c7}*SharedItemsImports = 9 @@ -178,6 +183,7 @@ Global ..\lib\modules\filter\filter.vcxitems*{49077dbf-e363-4d2d-8334-636569a771b6}*SharedItemsImports = 4 ..\lib\modules\liveeventinspector\liveeventinspector.vcxitems*{49077dbf-e363-4d2d-8334-636569a771b6}*SharedItemsImports = 4 ..\lib\modules\privacyguard\privacyguard.vcxitems*{49077dbf-e363-4d2d-8334-636569a771b6}*SharedItemsImports = 4 + ..\lib\modules\sanitizer\sanitizer.vcxitems*{49077dbf-e363-4d2d-8334-636569a771b6}*SharedItemsImports = 4 ..\lib\modules\signals\signals.vcxitems*{49077dbf-e363-4d2d-8334-636569a771b6}*SharedItemsImports = 4 ..\lib\pal\universal\universal.vcxitems*{49077dbf-e363-4d2d-8334-636569a771b6}*SharedItemsImports = 4 ..\lib\shared\Shared.vcxitems*{49077dbf-e363-4d2d-8334-636569a771b6}*SharedItemsImports = 4 @@ -189,6 +195,7 @@ Global ..\lib\modules\filter\filter.vcxitems*{57a81ed9-5603-471f-afee-9656da74178d}*SharedItemsImports = 4 ..\lib\modules\liveeventinspector\liveeventinspector.vcxitems*{57a81ed9-5603-471f-afee-9656da74178d}*SharedItemsImports = 4 ..\lib\modules\privacyguard\privacyguard.vcxitems*{57a81ed9-5603-471f-afee-9656da74178d}*SharedItemsImports = 4 + ..\lib\modules\sanitizer\sanitizer.vcxitems*{57a81ed9-5603-471f-afee-9656da74178d}*SharedItemsImports = 4 ..\lib\modules\signals\signals.vcxitems*{57a81ed9-5603-471f-afee-9656da74178d}*SharedItemsImports = 4 ..\lib\pal\universal\universal.vcxitems*{57a81ed9-5603-471f-afee-9656da74178d}*SharedItemsImports = 4 Clienttelemetry\Clienttelemetry.vcxitems*{57a81ed9-5603-471f-afee-9656da74178d}*SharedItemsImports = 4 @@ -201,6 +208,7 @@ Global ..\lib\modules\filter\filter.vcxitems*{7a75748d-5d6b-48a5-83cb-f5f439133d59}*SharedItemsImports = 4 ..\lib\modules\liveeventinspector\liveeventinspector.vcxitems*{7a75748d-5d6b-48a5-83cb-f5f439133d59}*SharedItemsImports = 4 ..\lib\modules\privacyguard\privacyguard.vcxitems*{7a75748d-5d6b-48a5-83cb-f5f439133d59}*SharedItemsImports = 4 + ..\lib\modules\sanitizer\sanitizer.vcxitems*{7a75748d-5d6b-48a5-83cb-f5f439133d59}*SharedItemsImports = 4 ..\lib\modules\signals\signals.vcxitems*{7a75748d-5d6b-48a5-83cb-f5f439133d59}*SharedItemsImports = 4 ..\lib\pal\universal\universal.vcxitems*{7a75748d-5d6b-48a5-83cb-f5f439133d59}*SharedItemsImports = 4 Clienttelemetry\Clienttelemetry.vcxitems*{7a75748d-5d6b-48a5-83cb-f5f439133d59}*SharedItemsImports = 4 @@ -208,6 +216,7 @@ Global ..\lib\modules\filter\filter.vcxitems*{d74e42ec-c6ee-4944-b92a-eb711be002a9}*SharedItemsImports = 9 ..\lib\shared\Shared.vcxitems*{dc91621e-a203-42df-8e03-3a23dd0602b1}*SharedItemsImports = 4 ..\lib\modules\privacyguard\privacyguard.vcxitems*{e1f6ca48-3bbf-4378-8d1e-6bbf4869db5b}*SharedItemsImports = 9 + ..\lib\modules\sanitizer\sanitizer.vcxitems*{e1f6ca48-3bbf-4378-8d1e-6bbf4869db5b}*SharedItemsImports = 9 ..\lib\shared\Shared.vcxitems*{ef859326-2a11-481c-ae8c-03d754f1c412}*SharedItemsImports = 9 ..\lib\modules\liveeventinspector\liveeventinspector.vcxitems*{f8bb42f6-9c93-423b-b0c6-23ef79dd959a}*SharedItemsImports = 9 ..\lib\decoder\decoder.vcxitems*{fe79fb3a-b3ef-38df-b7a4-11277db72b39}*SharedItemsImports = 4 @@ -217,6 +226,7 @@ Global ..\lib\modules\filter\filter.vcxitems*{fe79fb3a-b3ef-38df-b7a4-11277db72b39}*SharedItemsImports = 4 ..\lib\modules\liveeventinspector\liveeventinspector.vcxitems*{fe79fb3a-b3ef-38df-b7a4-11277db72b39}*SharedItemsImports = 4 ..\lib\modules\privacyguard\privacyguard.vcxitems*{fe79fb3a-b3ef-38df-b7a4-11277db72b39}*SharedItemsImports = 4 + ..\lib\modules\sanitizer\sanitizer.vcxitems*{fe79fb3a-b3ef-38df-b7a4-11277db72b39}*SharedItemsImports = 4 ..\lib\pal\desktop\desktop.vcxitems*{fe79fb3a-b3ef-38df-b7a4-11277db72b39}*SharedItemsImports = 4 Clienttelemetry\Clienttelemetry.vcxitems*{fe79fb3a-b3ef-38df-b7a4-11277db72b39}*SharedItemsImports = 4 EndGlobalSection diff --git a/Solutions/win10-cs/win10-cs.vcxproj b/Solutions/win10-cs/win10-cs.vcxproj index ae02d5a4f..3d557d277 100644 --- a/Solutions/win10-cs/win10-cs.vcxproj +++ b/Solutions/win10-cs/win10-cs.vcxproj @@ -101,6 +101,7 @@ + diff --git a/Solutions/win10-dll/win10-dll.vcxproj b/Solutions/win10-dll/win10-dll.vcxproj index b7d16d9e4..da6a93471 100644 --- a/Solutions/win10-dll/win10-dll.vcxproj +++ b/Solutions/win10-dll/win10-dll.vcxproj @@ -104,6 +104,7 @@ + diff --git a/Solutions/win10-lib/win10-lib.vcxproj b/Solutions/win10-lib/win10-lib.vcxproj index 30628d59e..68679a0fc 100644 --- a/Solutions/win10-lib/win10-lib.vcxproj +++ b/Solutions/win10-lib/win10-lib.vcxproj @@ -100,6 +100,7 @@ + diff --git a/Solutions/win32-dll/win32-dll.vcxproj b/Solutions/win32-dll/win32-dll.vcxproj index f561b5783..0f91d829c 100644 --- a/Solutions/win32-dll/win32-dll.vcxproj +++ b/Solutions/win32-dll/win32-dll.vcxproj @@ -102,6 +102,7 @@ + diff --git a/Solutions/win32-lib/win32-lib.vcxproj b/Solutions/win32-lib/win32-lib.vcxproj index df3417ec3..90602e232 100644 --- a/Solutions/win32-lib/win32-lib.vcxproj +++ b/Solutions/win32-lib/win32-lib.vcxproj @@ -149,6 +149,7 @@ + diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index bb2e54568..09a6daf4a 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -1,7 +1,7 @@ # Honor visibility properties for all target types cmake_policy(SET CMP0063 NEW) -include_directories( . ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/include/public ${CMAKE_CURRENT_SOURCE_DIR}/include/public ${CMAKE_CURRENT_SOURCE_DIR}/include/mat ${CMAKE_CURRENT_SOURCE_DIR}/pal ${CMAKE_CURRENT_SOURCE_DIR}/utils ${CMAKE_CURRENT_SOURCE_DIR}/modules/exp ${CMAKE_CURRENT_SOURCE_DIR}/modules/dataviewer ${CMAKE_CURRENT_SOURCE_DIR}/modules/privacyguard ${CMAKE_CURRENT_SOURCE_DIR}/modules/liveeventinspector ${CMAKE_CURRENT_SOURCE_DIR}/../third_party/Reachability ${CMAKE_CURRENT_SOURCE_DIR}/modules/cds ${CMAKE_CURRENT_SOURCE_DIR}/modules/signals /usr/local/include ) +include_directories( . ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/include/public ${CMAKE_CURRENT_SOURCE_DIR}/include/public ${CMAKE_CURRENT_SOURCE_DIR}/include/mat ${CMAKE_CURRENT_SOURCE_DIR}/pal ${CMAKE_CURRENT_SOURCE_DIR}/utils ${CMAKE_CURRENT_SOURCE_DIR}/modules/exp ${CMAKE_CURRENT_SOURCE_DIR}/modules/dataviewer ${CMAKE_CURRENT_SOURCE_DIR}/modules/privacyguard ${CMAKE_CURRENT_SOURCE_DIR}/modules/liveeventinspector ${CMAKE_CURRENT_SOURCE_DIR}/../third_party/Reachability ${CMAKE_CURRENT_SOURCE_DIR}/modules/cds ${CMAKE_CURRENT_SOURCE_DIR}/modules/signals ${CMAKE_CURRENT_SOURCE_DIR}/modules/sanitizer /usr/local/include ) set(SRCS decorators/BaseDecorator.cpp packager/BondSplicer.cpp @@ -110,6 +110,17 @@ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/signals/ AND BUILD_SIGNALS) ) endif() +if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/sanitizer/ AND BUILD_SANITIZER) + list(APPEND SRCS + modules/sanitizer/Sanitizer.cpp + modules/sanitizer/SanitizerProvider.cpp + modules/sanitizer/SanitizerStringUtils.cpp + modules/sanitizer/SanitizerTargets.cpp + modules/sanitizer/SanitizerTrie.cpp + modules/sanitizer/SanitizerTrieNode.cpp + ) +endif() + if(PAL_IMPLEMENTATION STREQUAL "CPP11") if(APPLE) list(APPEND SRCS diff --git a/lib/api/LogManagerImpl.cpp b/lib/api/LogManagerImpl.cpp index 6a98e6406..94e285aa1 100644 --- a/lib/api/LogManagerImpl.cpp +++ b/lib/api/LogManagerImpl.cpp @@ -85,6 +85,19 @@ #endif #endif +#ifdef HAVE_MAT_SANITIZER +#if defined __has_include +#if __has_include("modules/sanitizer/Sanitizer.hpp") +#include "modules/sanitizer/Sanitizer.hpp" +#else +/* Compiling without Sanitizer support because Santizer private header is unavailable */ +#undef HAVE_MAT_SANITIZER +#endif +#else +#include "modules/sanitizer/Sanitizer.hpp" +#endif +#endif + namespace MAT_NS_BEGIN { void DeadLoggers::AddMap(LoggerMap&& source) diff --git a/lib/include/mat/config-default.h b/lib/include/mat/config-default.h index 554e97c1a..9617611c9 100644 --- a/lib/include/mat/config-default.h +++ b/lib/include/mat/config-default.h @@ -16,6 +16,9 @@ # if __has_include("modules/signals/Signals.hpp") # define HAVE_MAT_SIGNALS # endif +# if __has_include("modules/sanitizer/Sanitizer.hpp") +# define HAVE_MAT_SANITIZER +# endif #endif #endif #if defined(HAVE_PRIVATE_MODULES) diff --git a/lib/modules b/lib/modules index 8539da62d..0daf05cb6 160000 --- a/lib/modules +++ b/lib/modules @@ -1 +1 @@ -Subproject commit 8539da62dd5e41e2847337df1d95f0f841d3a738 +Subproject commit 0daf05cb6d30f6426439b9442371ec355993f603 diff --git a/tests/functests/FuncTests.vcxproj b/tests/functests/FuncTests.vcxproj index d2578806f..50f4e2427 100644 --- a/tests/functests/FuncTests.vcxproj +++ b/tests/functests/FuncTests.vcxproj @@ -450,6 +450,9 @@ + + + diff --git a/tests/functests/FuncTests.vcxproj.filters b/tests/functests/FuncTests.vcxproj.filters index a6aee552b..22f2ac5d9 100644 --- a/tests/functests/FuncTests.vcxproj.filters +++ b/tests/functests/FuncTests.vcxproj.filters @@ -23,6 +23,7 @@ + diff --git a/tests/unittests/UnitTests.vcxproj b/tests/unittests/UnitTests.vcxproj index 3355b1404..76426e9b5 100644 --- a/tests/unittests/UnitTests.vcxproj +++ b/tests/unittests/UnitTests.vcxproj @@ -494,6 +494,16 @@ + + + + + + + + + +