diff options
author | robot-piglet <robot-piglet@yandex-team.com> | 2025-01-06 16:20:27 +0300 |
---|---|---|
committer | robot-piglet <robot-piglet@yandex-team.com> | 2025-01-06 16:31:02 +0300 |
commit | 5098d8d5e47c4228968a0f28ab95f43cd52abc2e (patch) | |
tree | 7bb3da14c1150696006794b8afe9370fce4658ef | |
parent | 8d6b1d92f402825e2759564bc561ea677f0f802d (diff) | |
download | ydb-5098d8d5e47c4228968a0f28ab95f43cd52abc2e.tar.gz |
Intermediate changes
commit_hash:eb0650680daaad11cb87780fed3a94fb37d55eee
-rw-r--r-- | contrib/libs/libfuzzer/.yandex_meta/override.nix | 5 | ||||
-rw-r--r-- | contrib/libs/libfuzzer/CODE_OWNERS.TXT | 8 | ||||
-rw-r--r-- | contrib/libs/libfuzzer/lib/fuzzer/FuzzerDriver.cpp | 1 | ||||
-rw-r--r-- | contrib/libs/libfuzzer/lib/fuzzer/FuzzerFork.cpp | 2 | ||||
-rw-r--r-- | contrib/libs/libfuzzer/lib/fuzzer/FuzzerUtilLinux.cpp | 2 | ||||
-rw-r--r-- | contrib/libs/libfuzzer/lib/fuzzer/FuzzerUtilWindows.cpp | 31 | ||||
-rw-r--r-- | contrib/libs/libfuzzer/lib/fuzzer/afl/ya.make | 2 | ||||
-rw-r--r-- | contrib/libs/libfuzzer/ya.make | 4 |
8 files changed, 44 insertions, 11 deletions
diff --git a/contrib/libs/libfuzzer/.yandex_meta/override.nix b/contrib/libs/libfuzzer/.yandex_meta/override.nix index 6a7b1610a3..3ddd79e032 100644 --- a/contrib/libs/libfuzzer/.yandex_meta/override.nix +++ b/contrib/libs/libfuzzer/.yandex_meta/override.nix @@ -1,11 +1,11 @@ pkgs: attrs: with pkgs; with attrs; rec { - version = "18.1.8"; + version = "19.1.6"; src = fetchFromGitHub { owner = "llvm"; repo = "llvm-project"; rev = "llvmorg-${version}"; - hash = "sha256-iiZKMRo/WxJaBXct9GdAcAT3cz9d9pnAcO1mmR6oPNE="; + hash = "sha256-LD4nIjZTSZJtbgW6tZopbTF5Mq0Tenj2gbuPXhtOeUI="; }; sourceRoot = "source/compiler-rt"; @@ -26,6 +26,7 @@ pkgs: attrs: with pkgs; with attrs; rec { "-DCOMPILER_RT_BUILD_MEMPROF=OFF" "-DCOMPILER_RT_BUILD_BUILTINS=OFF" "-DCOMPILER_RT_BUILD_CRT=OFF" + "-DCOMPILER_RT_BUILD_CTX_PROFILE=OFF" "-DCOMPILER_RT_BUILD_XRAY=OFF" "-DCOMPILER_RT_BUILD_ORC=OFF" "-DCOMPILER_RT_BUILD_GWP_ASAN=OFF" diff --git a/contrib/libs/libfuzzer/CODE_OWNERS.TXT b/contrib/libs/libfuzzer/CODE_OWNERS.TXT index ad136edf96..bd51a1073c 100644 --- a/contrib/libs/libfuzzer/CODE_OWNERS.TXT +++ b/contrib/libs/libfuzzer/CODE_OWNERS.TXT @@ -67,3 +67,11 @@ D: ThreadSanitizer N: Bill Wendling E: isanbard@gmail.com D: Profile runtime library + +N: Christopher Apple, David Trevelyan +E: cja-private@pm.me, realtime.sanitizer@gmail.com +D: Realtime Sanitizer (RTSan) + +N: Alexander Shaposhnikov +E: alexander.v.shaposhnikov@gmail.com +D: Numerical Sanitizer (NSAN) diff --git a/contrib/libs/libfuzzer/lib/fuzzer/FuzzerDriver.cpp b/contrib/libs/libfuzzer/lib/fuzzer/FuzzerDriver.cpp index 1937b14bc9..093cd9e3c3 100644 --- a/contrib/libs/libfuzzer/lib/fuzzer/FuzzerDriver.cpp +++ b/contrib/libs/libfuzzer/lib/fuzzer/FuzzerDriver.cpp @@ -229,6 +229,7 @@ static void PulseThread() { static void WorkerThread(const Command &BaseCmd, std::atomic<unsigned> *Counter, unsigned NumJobs, std::atomic<bool> *HasErrors) { + ScopedDisableMsanInterceptorChecks S; while (true) { unsigned C = (*Counter)++; if (C >= NumJobs) break; diff --git a/contrib/libs/libfuzzer/lib/fuzzer/FuzzerFork.cpp b/contrib/libs/libfuzzer/lib/fuzzer/FuzzerFork.cpp index c248a1d246..e544cd846e 100644 --- a/contrib/libs/libfuzzer/lib/fuzzer/FuzzerFork.cpp +++ b/contrib/libs/libfuzzer/lib/fuzzer/FuzzerFork.cpp @@ -349,7 +349,7 @@ void FuzzWithFork(Random &Rand, const FuzzingOptions &Options, &NewFeatures, Env.Cov, &NewCov, CFPath, /*Verbose=*/false, /*IsSetCoverMerge=*/false); Env.Features.insert(NewFeatures.begin(), NewFeatures.end()); - Env.Cov.insert(NewFeatures.begin(), NewFeatures.end()); + Env.Cov.insert(NewCov.begin(), NewCov.end()); RemoveFile(CFPath); } diff --git a/contrib/libs/libfuzzer/lib/fuzzer/FuzzerUtilLinux.cpp b/contrib/libs/libfuzzer/lib/fuzzer/FuzzerUtilLinux.cpp index 5729448b0b..e5409f22f0 100644 --- a/contrib/libs/libfuzzer/lib/fuzzer/FuzzerUtilLinux.cpp +++ b/contrib/libs/libfuzzer/lib/fuzzer/FuzzerUtilLinux.cpp @@ -44,7 +44,7 @@ void SetThreadName(std::thread &thread, const std::string &name) { #if LIBFUZZER_LINUX || LIBFUZZER_FREEBSD (void)pthread_setname_np(thread.native_handle(), name.c_str()); #elif LIBFUZZER_NETBSD - (void)pthread_set_name_np(thread.native_handle(), "%s", name.c_str()); + (void)pthread_setname_np(thread.native_handle(), "%s", const_cast<char *>(name.c_str())); #endif } diff --git a/contrib/libs/libfuzzer/lib/fuzzer/FuzzerUtilWindows.cpp b/contrib/libs/libfuzzer/lib/fuzzer/FuzzerUtilWindows.cpp index 7177016680..da3eb3cfb3 100644 --- a/contrib/libs/libfuzzer/lib/fuzzer/FuzzerUtilWindows.cpp +++ b/contrib/libs/libfuzzer/lib/fuzzer/FuzzerUtilWindows.cpp @@ -21,10 +21,15 @@ #include <signal.h> #include <stdio.h> #include <sys/types.h> +// clang-format off #include <windows.h> - -// This must be included after windows.h. +// These must be included after windows.h. +// archicture need to be set before including +// libloaderapi +#include <libloaderapi.h> +#include <stringapiset.h> #include <psapi.h> +// clang-format on namespace fuzzer { @@ -234,8 +239,26 @@ size_t PageSize() { } void SetThreadName(std::thread &thread, const std::string &name) { - // TODO ? - // to UTF-8 then SetThreadDescription ? +#ifndef __MINGW32__ + // Not setting the thread name in MinGW environments. MinGW C++ standard + // libraries can either use native Windows threads or pthreads, so we + // don't know with certainty what kind of thread handle we're getting + // from thread.native_handle() here. + typedef HRESULT(WINAPI * proc)(HANDLE, PCWSTR); + HMODULE kbase = GetModuleHandleA("KernelBase.dll"); + proc ThreadNameProc = + reinterpret_cast<proc>(GetProcAddress(kbase, "SetThreadDescription")); + if (ThreadNameProc) { + std::wstring buf; + auto sz = MultiByteToWideChar(CP_UTF8, 0, name.data(), -1, nullptr, 0); + if (sz > 0) { + buf.resize(sz); + if (MultiByteToWideChar(CP_UTF8, 0, name.data(), -1, &buf[0], sz) > 0) { + (void)ThreadNameProc(thread.native_handle(), buf.c_str()); + } + } + } +#endif } } // namespace fuzzer diff --git a/contrib/libs/libfuzzer/lib/fuzzer/afl/ya.make b/contrib/libs/libfuzzer/lib/fuzzer/afl/ya.make index a27f6fa1e6..b1c8ad932e 100644 --- a/contrib/libs/libfuzzer/lib/fuzzer/afl/ya.make +++ b/contrib/libs/libfuzzer/lib/fuzzer/afl/ya.make @@ -8,7 +8,7 @@ LICENSE_TEXTS(.yandex_meta/licenses.list.txt) SUBSCRIBER(g:cpp-contrib) -VERSION(18.1.8) +VERSION(19.1.6) PEERDIR( contrib/libs/afl/llvm_mode diff --git a/contrib/libs/libfuzzer/ya.make b/contrib/libs/libfuzzer/ya.make index 59598cb1cf..671393801b 100644 --- a/contrib/libs/libfuzzer/ya.make +++ b/contrib/libs/libfuzzer/ya.make @@ -12,9 +12,9 @@ LICENSE( LICENSE_TEXTS(.yandex_meta/licenses.list.txt) -VERSION(18.1.8) +VERSION(19.1.6) -ORIGINAL_SOURCE(https://github.com/llvm/llvm-project/archive/llvmorg-18.1.8.tar.gz) +ORIGINAL_SOURCE(https://github.com/llvm/llvm-project/archive/llvmorg-19.1.6.tar.gz) SET(SANITIZER_CFLAGS) |