| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[sanitizer] Remove cpplint As code diverge from Google style we need to add more and more exceptions to suppress conflicts with clang-format and clang-tidy. As this point it does not provide a additional value. Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D107197 | 4 年前 | |
Revert "[llvm] cmake config groundwork to have ZSTD in LLVM" This reverts commit f07caf20b9d35e45501c9d5d903fa182b3bdb95a which seems to break upstream https://lab.llvm.org/buildbot/#/builders/109/builds/42253. | 3 年前 | |
[compiler-rt][CMake] Set --unwindlib=none when using LLVM libunwind We already link libunwind explicitly so avoid trying to link toolchain's default libunwind which may be missing. This matches what we already do for libcxx and libcxxabi. Differential Revision: https://reviews.llvm.org/D129472 | 3 年前 | |
Revert "sanitizers: increase .clang-format columns to 100" This reverts commit 5d1df6d220f1d6f726d9643848679d781750db64. There is a strong objection to this change: https://reviews.llvm.org/D106436#2905618 Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D106847 | 4 年前 | |
[sanitizer] Port sanitizer_common to LoongArch Initial libsanitizer support for LoongArch. It survived all GCC UBSan tests. Major changes: 1. LoongArch port of Linux kernel only supports statx for stat and its families. So we need to add statx_to_stat and use it for stat-like libcalls. The logic is "borrowed" from Glibc. 2. sanitizer_syscall_linux_loongarch64.inc is mostly duplicated from RISC-V port, as the syscall interface is almost same. Reviewed By: SixWeining, MaskRay, XiaodongLoong, vitalybuka Differential Revision: https://reviews.llvm.org/D129371 | 3 年前 | |
compiler-rt: Rename .cc file in lib/sanitizer_common to .cpp See https://reviews.llvm.org/D58620 for discussion, and for the commands I ran. In addition I also ran for f in $(svn diff | diffstat | grep .cc | cut -f 2 -d ' '); do rg $f . ; done and manually updated (many) references to renamed files found by that. llvm-svn: 367463 | 6 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
[compiler-rt] NFC: Fix trivial typo Reviewed By: xgupta Differential Revision: https://reviews.llvm.org/D77457 | 4 年前 | |
sanitizer_common: prefix thread-safety macros with SANITIZER_ Currently we use very common names for macros like ACQUIRE/RELEASE, which cause conflicts with system headers. Prefix all macros with SANITIZER_ to avoid conflicts. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D116652 | 4 年前 | |
sanitizer_common: prefix thread-safety macros with SANITIZER_ Currently we use very common names for macros like ACQUIRE/RELEASE, which cause conflicts with system headers. Prefix all macros with SANITIZER_ to avoid conflicts. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D116652 | 4 年前 | |
[NFC][sanitizer] Remove SetSoftRssLimitExceededCallback According comments on D44404, something like that was the goal. Reviewed By: morehouse, kstoimenov Differential Revision: https://reviews.llvm.org/D114991 | 4 年前 | |
compiler-rt: Rename .cc file in lib/sanitizer_common to .cpp See https://reviews.llvm.org/D58620 for discussion, and for the commands I ran. In addition I also ran for f in $(svn diff | diffstat | grep .cc | cut -f 2 -d ' '); do rg $f . ; done and manually updated (many) references to renamed files found by that. llvm-svn: 367463 | 6 年前 | |
[compiler-rt] Replace INLINE with inline This fixes the clash with BSD headers. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D87562 | 5 年前 | |
sanitizer_common: prefix thread-safety macros with SANITIZER_ Currently we use very common names for macros like ACQUIRE/RELEASE, which cause conflicts with system headers. Prefix all macros with SANITIZER_ to avoid conflicts. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D116652 | 4 年前 | |
[sanitizer] Switch dlsym hack to internal_allocator Since glibc 2.34, dlsym does 1. malloc 1 2. malloc 2 3. free pointer from malloc 1 4. free pointer from malloc 2 These sequence was not handled by trivial dlsym hack. This fixes https://bugs.llvm.org/show_bug.cgi?id=52278 Reviewed By: eugenis, morehouse Differential Revision: https://reviews.llvm.org/D112588 | 4 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
tsan: lock internal allocator around fork There is a small chance that the internal allocator is locked during fork and then the new process is created with locked internal allocator and any attempts to use it will deadlock. For example, if detected a suppressed race in the parent during fork and then another suppressed race after the fork. This becomes much more likely with the new tsan runtime as it uses the internal allocator for more things. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D114531 | 4 年前 | |
sanitizer_common: optimize memory drain Currently we allocate MemoryMapper per size class. MemoryMapper mmap's and munmap's internal buffer. This results in 50 mmap/munmap calls under the global allocator mutex. Reuse MemoryMapper and the buffer for all size classes. This radically reduces number of mmap/munmap calls. Smaller size classes tend to have more objects allocated, so it's highly likely that the buffer allocated for the first size class will be enough for all subsequent size classes. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D105778 | 4 年前 | |
sanitizer_common: prefix thread-safety macros with SANITIZER_ Currently we use very common names for macros like ACQUIRE/RELEASE, which cause conflicts with system headers. Prefix all macros with SANITIZER_ to avoid conflicts. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D116652 | 4 年前 | |
sanitizer_common: prefix thread-safety macros with SANITIZER_ Currently we use very common names for macros like ACQUIRE/RELEASE, which cause conflicts with system headers. Prefix all macros with SANITIZER_ to avoid conflicts. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D116652 | 4 年前 | |
[compiler-rt][sanitizer] Have all OOM-related error messages start with the same format This way downstream tools that read sanitizer output can differentiate between OOM errors reported by sanitizers from other sanitizer errors. Changes: - Introduce ErrorIsOOM for checking if a platform-specific error code from an "mmap" is an OOM err. - Add ReportOOMError which just prepends this error message to the start of a Report call. - Replace some Reports for OOMs with calls to ReportOOMError. - Update necessary tests. Differential Revision: https://reviews.llvm.org/D127161 | 3 年前 | |
[MemProf] Memory profiling runtime support See RFC for background: http://lists.llvm.org/pipermail/llvm-dev/2020-June/142744.html Follow on companion to the clang/llvm instrumentation support in D85948 and committed earlier. This patch adds the compiler-rt runtime support for the memory profiling. Note that much of this support was cloned from asan (and then greatly simplified and renamed). For example the interactions with the sanitizer_common allocators, error handling, interception, etc. The bulk of the memory profiling specific code can be found in the MemInfoBlock, MemInfoBlockCache, and related classes defined and used in memprof_allocator.cpp. For now, the memory profile is dumped to text (stderr by default, but honors the sanitizer_common log_path flag). It is dumped in either a default verbose format, or an optional terse format. This patch also adds a set of tests for the core functionality. Differential Revision: https://reviews.llvm.org/D87120 | 5 年前 | |
sanitizer_common: prefix thread-safety macros with SANITIZER_ Currently we use very common names for macros like ACQUIRE/RELEASE, which cause conflicts with system headers. Prefix all macros with SANITIZER_ to avoid conflicts. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D116652 | 4 年前 | |
[sanitizer] Fix format string | 4 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
[sanitizer] Use one #if instead of 3 nested #if after D111185 | 4 年前 | |
[compiler-rt] Replace INLINE with inline This fixes the clash with BSD headers. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D87562 | 5 年前 | |
[sanitizer][mips] Fix the condition to include sanitizer_atomic_clang_mips.h The Glibc header [1] define _ABIO32 unconditionally on MIPS. So we need to compare _MIPS_SIM and _ABIO32 to know if we are actually building for MIPS32. Using sanitizer_atomic_clang_mips.h can cause test failures and hangs on MIPS64. [1]: https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/mips/sgidefs.h Reviewed By: dvyukov, vitalybuka, MaskRay Differential Revision: https://reviews.llvm.org/D121207 | 4 年前 | |
[compiler-rt] NFC: Fix trivial typo Reviewed By: xgupta Differential Revision: https://reviews.llvm.org/D77457 | 4 年前 | |
[sanitizer] Use __atomic_load/store() built-ins for generic 32-bit targets Simplifies the code and fixes the build on SPARC. See discussion in: http://lists.llvm.org/pipermail/llvm-dev/2020-October/145937.html Author: glaubitz (John Paul Adrian Glaubitz) Reviewed-in: https://reviews.llvm.org/D89940 | 5 年前 | |
[compiler-rt] Replace INLINE with inline This fixes the clash with BSD headers. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D87562 | 5 年前 | |
[compiler-rt] Replace INLINE with inline This fixes the clash with BSD headers. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D87562 | 5 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
[sanitizer_common] Fix SanitizerCommon.ChainedOriginDepotStats test This test was failing with the following error message if to run the test binary directly, w/o using lit: $ Sanitizer-x86_64-Test --gtest_filter=SanitizerCommon.ChainedOriginDepot* ... [ RUN ] SanitizerCommon.ChainedOriginDepotStats compiler-rt/lib/sanitizer_common/tests/sanitizer_chained_origin_depot_test.cpp:77: Failure Expected: (stats1.allocated) > (stats0.allocated), actual: 196608 vs 196608 [ FAILED ] SanitizerCommon.ChainedOriginDepotStats (867 ms) Since the ChainedOriginDepot* tests are not doing any cleanup, by the time SanitizerCommon.ChainedOriginDepotStats test starts executing the depot may not be empty, so there will be no allocation for the test. This patch introduces ChainedOriginDepot::TestOnlyUnmap() API that deallocates memory when requested. This makes sure underlying TwoLevelMap initiates the expected allocation during the test. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D127621 | 3 年前 | |
[sanitizer_common] Fix SanitizerCommon.ChainedOriginDepotStats test This test was failing with the following error message if to run the test binary directly, w/o using lit: $ Sanitizer-x86_64-Test --gtest_filter=SanitizerCommon.ChainedOriginDepot* ... [ RUN ] SanitizerCommon.ChainedOriginDepotStats compiler-rt/lib/sanitizer_common/tests/sanitizer_chained_origin_depot_test.cpp:77: Failure Expected: (stats1.allocated) > (stats0.allocated), actual: 196608 vs 196608 [ FAILED ] SanitizerCommon.ChainedOriginDepotStats (867 ms) Since the ChainedOriginDepot* tests are not doing any cleanup, by the time SanitizerCommon.ChainedOriginDepotStats test starts executing the depot may not be empty, so there will be no allocation for the test. This patch introduces ChainedOriginDepot::TestOnlyUnmap() API that deallocates memory when requested. This makes sure underlying TwoLevelMap initiates the expected allocation during the test. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D127621 | 3 年前 | |
[compiler-rt][sanitizer] Have all OOM-related error messages start with the same format This way downstream tools that read sanitizer output can differentiate between OOM errors reported by sanitizers from other sanitizer errors. Changes: - Introduce ErrorIsOOM for checking if a platform-specific error code from an "mmap" is an OOM err. - Add ReportOOMError which just prepends this error message to the start of a Report call. - Replace some Reports for OOMs with calls to ReportOOMError. - Update necessary tests. Differential Revision: https://reviews.llvm.org/D127161 | 3 年前 | |
tsan: capture shadow map start/end on init and reuse in reset Capture the computed shadow begin/end values at the point where the shadow is first created and reuse those values on reset. Introduce new windows-specific function "ZeroMmapFixedRegion" for zeroing out an address space region previously returned by one of the MmapFixed* routines; call this function (on windows) from DoResetImpl tsan_rtl.cpp instead of MmapFixedSuperNoReserve. See https://github.com/golang/go/issues/53539#issuecomment-1168778740 for context; intended to help with updating the syso for Go's windows/amd64 race detector. Differential Revision: https://reviews.llvm.org/D128909 | 3 年前 | |
[test] Make Linux/sem_init_glibc.cpp robust and fix it for 32-bit ports defining sem_init@GLIBC_2.0 (i386, mips32, powerpc32) for glibc>=2.36. Fix https://github.com/llvm/llvm-project/issues/58079 Reviewed By: mgorny Differential Revision: https://reviews.llvm.org/D135023 (cherry picked from commit 6f46ff3765dcdc178b9cf52ebd8c03437806798a) | 3 年前 | |
sanitizer_common: fix format strings Fix existing -Wformat warnings. Depends on D107979. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D107980 | 4 年前 | |
[MSAN] extend ioctl interceptor to support BLKSSZGET Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D120693 | 4 年前 | |
[compiler-rt] change internal internal libc invariants llvm-libc is expected to be built with sanitizers and not use interceptors in the long run. For now though, we have a hybrid process, where functions implemented in llvm-libc are instrumented, and glibc fills and sanitizer interceptors fill in the rest. Current sanitizers have an invariant that the REAL(...) function called from inside of an interceptor is uninstrumented. A lot of interceptors call strlen() in order to figure out the size of the region to check/poison. Switch these callsites over to the internal, unsanitized implementation. Reviewed By: hctim, vitalybuka Differential Revision: https://reviews.llvm.org/D108316 | 4 年前 | |
[AArch64][compiler-rt] Fix PAC instructions for older compilers The paciasp and autiasp instructions are only accepted by recent compilers, but have the same encoding as hint instructions, so we can use the hint menmonic to support older compilers. | 5 年前 | |
[hwasan, asan] Intercept vfork. Summary: Intercept vfork on arm, aarch64, i386 and x86_64. Reviewers: pcc, vitalybuka Subscribers: kubamracek, mgorny, javed.absar, krytarowski, kristof.beyls, #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D58533 llvm-svn: 355030 | 7 年前 | |
Reland [sanitizer] Support Intel CET 1. Include <cet.h> in sanitizer_common/sanitizer_asm.h, if it exists, to mark Intel CET support when Intel CET is enabled. 2. Define _CET_ENDBR as empty if it isn't defined. 3. Add _CET_ENDBR to function entries in assembly codes so that ENDBR instruction will be generated when Intel CET is enabled. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D111185 | 4 年前 | |
Port address sanitizer to LoongArch Depends on D129371. It survived all GCC ASan tests. Changes are trivial and mostly "borrowed" RISC-V logics, except that a different SHADOW_OFFSET is used. Reviewed By: SixWeining, MaskRay, XiaodongLoong Differential Revision: https://reviews.llvm.org/D129418 | 3 年前 | |
[RISCV][ASAN] implementation for vfork interceptor for riscv64 [5/11] patch series to port ASAN for riscv64 Depends On D87573 Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D87574 | 5 年前 | |
Reland [sanitizer] Support Intel CET 1. Include <cet.h> in sanitizer_common/sanitizer_asm.h, if it exists, to mark Intel CET support when Intel CET is enabled. 2. Define _CET_ENDBR as empty if it isn't defined. 3. Add _CET_ENDBR to function entries in assembly codes so that ENDBR instruction will be generated when Intel CET is enabled. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D111185 | 4 年前 | |
[sanitizer_common] Add facility to get the full report path Add a new interface __sanitizer_get_report_path which will return the full path to the report file if __sanitizer_set_report_path was previously called (otherwise it returns null). This is useful in particular for memory profiling handlers to access the path which was specified at compile time (and passed down via __memprof_profile_filename), including the pid added to the path when the file is opened. There wasn't a test for __sanitizer_set_report_path, so I added one which additionally tests the new interface. Differential Revision: https://reviews.llvm.org/D91765 | 5 年前 | |
[sanitizer] Add common "demangle" flag Reviewed By: browneee Differential Revision: https://reviews.llvm.org/D116202 | 4 年前 | |
sanitizer: use pragma clang conditionally Use the pragma only when __clang__ is defined. Fixes: sanitizer_common_libcdep.cpp:101: warning: ignoring ‘#pragma clang diagnostic’ [-Wunknown-pragmas] Differential Revision: https://reviews.llvm.org/D124829 | 4 年前 | |
[Sanitizers][Darwin] Replace SANITIZER_MAC with SANITIZER_APPLE in source files This is a follow up to [Sanitizers][Darwin] Rename Apple macro SANITIZER_MAC -> SANITIZER_APPLE (D125816) Performed a global search/replace as in title against LLVM sources Differential Revision: https://reviews.llvm.org/D126263 | 4 年前 | |
[sanitizer] Add callbacks for epoll_pwait2 Depends on D107207. Differential Revision: https://reviews.llvm.org/D107209 | 4 年前 | |
[sanitizers] Add missing header to fix Fuchsia builds Adds missing header to fix sanitizer builds for Fuchsia. Reviewed By: abrachet Differential Revision: https://reviews.llvm.org/D119588 | 4 年前 | |
[SanitizerCoverage] add weak definitions for the load/store callbacks. Add weak definitions for the load/store callbacks. This matches the weak definitions for all other SanitizerCoverage callbacks. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D129801 | 3 年前 | |
[SanitizerCoverage] add weak definitions for the load/store callbacks. Add weak definitions for the load/store callbacks. This matches the weak definitions for all other SanitizerCoverage callbacks. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D129801 | 3 年前 | |
compiler-rt: Rename .cc file in lib/sanitizer_common to .cpp See https://reviews.llvm.org/D58620 for discussion, and for the commands I ran. In addition I also ran for f in $(svn diff | diffstat | grep .cc | cut -f 2 -d ' '); do rg $f . ; done and manually updated (many) references to renamed files found by that. llvm-svn: 367463 | 6 年前 | |
compiler-rt: Rename .cc file in lib/sanitizer_common to .cpp See https://reviews.llvm.org/D58620 for discussion, and for the commands I ran. In addition I also ran for f in $(svn diff | diffstat | grep .cc | cut -f 2 -d ' '); do rg $f . ; done and manually updated (many) references to renamed files found by that. llvm-svn: 367463 | 6 年前 | |
Remove NOLINTs from compiler-rt llvm-svn: 371687 | 6 年前 | |
compiler-rt: Rename .cc file in lib/sanitizer_common to .cpp See https://reviews.llvm.org/D58620 for discussion, and for the commands I ran. In addition I also ran for f in $(svn diff | diffstat | grep .cc | cut -f 2 -d ' '); do rg $f . ; done and manually updated (many) references to renamed files found by that. llvm-svn: 367463 | 6 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
[compiler-rt] Fix typo in DeadlockDetector (chanding->changing) | 4 年前 | |
sanitizer_common: use 0 for empty stack id We use 0 for empty stack id from stack depot. Deadlock detector 1 is the only place that uses -1 as a special case. Use 0 because there is a number of checks of the form "if (stack id) ...". Reviewed By: melver Differential Revision: https://reviews.llvm.org/D105776 | 4 年前 | |
sanitizer_common: rename Mutex to MutexState We have 3 different mutexes (RWMutex, BlockingMutex __tsan::Mutex), each with own set of downsides. I want to unify them under a name Mutex. But it will conflict with Mutex in the deadlock detector, which is a way too generic name. Rename it to MutexState. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D105773 | 4 年前 | |
[NFC] Fix cpplint warnings | 5 年前 | |
[NFC][sanitizer] Reuse forEach for operator== | 4 年前 | |
[NFC][sanitizer] constexpr in sanitizer_dense_map_info | 4 年前 | |
compiler-rt: Rename .cc file in lib/sanitizer_common to .cpp See https://reviews.llvm.org/D58620 for discussion, and for the commands I ran. In addition I also ran for f in $(svn diff | diffstat | grep .cc | cut -f 2 -d ' '); do rg $f . ; done and manually updated (many) references to renamed files found by that. llvm-svn: 367463 | 6 年前 | |
[Sanitizers][Darwin] Replace SANITIZER_MAC with SANITIZER_APPLE in source files This is a follow up to [Sanitizers][Darwin] Rename Apple macro SANITIZER_MAC -> SANITIZER_APPLE (D125816) Performed a global search/replace as in title against LLVM sources Differential Revision: https://reviews.llvm.org/D126263 | 4 年前 | |
[msan] Skip memcpy interceptor called by gethostname No test as reproducer requires particular glibc build. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D88284 | 5 年前 | |
[sanitizer] Check if directory exists before trying to create Add a DirExists mechanism, modeled after FileExists. Use it to guard creation of the report path directory. This should avoid failures running the sanitizer in a sandbox where the file creation attempt causes hard failures, even for an existing directory. Problem reported on D109794 for ChromeOS in sandbox (https://issuetracker.google.com/209296420). Differential Revision: https://reviews.llvm.org/D119495 | 4 年前 | |
[sanitizer] Check if directory exists before trying to create Add a DirExists mechanism, modeled after FileExists. Use it to guard creation of the report path directory. This should avoid failures running the sanitizer in a sandbox where the file creation attempt causes hard failures, even for an existing directory. Problem reported on D109794 for ChromeOS in sandbox (https://issuetracker.google.com/209296420). Differential Revision: https://reviews.llvm.org/D119495 | 4 年前 | |
[SanitizerCommon] Print the current value of options when printing out help. Summary: Previously it wasn't obvious what the default value of various sanitizer options were. A very close approximation of the "default values" for the options are the current value of the options at the time of printing the help output. In the case that no other options are provided then the current values are the default values (apart from help). ASAN_OPTIONS=help=1 ./program This patch causes the current option values to be printed when the help output is enabled. The original intention for this patch was to append (Default: <value>) to an option's help text. However because this is technically wrong (and misleading) I've opted to append (Current Value: <value>) instead. When trying to implement a way of displaying the default value of the options I tried another solution where the default value used in *.inc files were used to create compile time strings that where used when printing the help output. This solution was not satisfactory for several reasons: * Stringifying the default values with the preprocessor did not work very well in several cases. Some options contain boolean operators which no amount of macro expansion can get rid of. * It was much more invasive than this patch. Every sanitizer had to be changed. * The settings of __<sanitizer>_default_options() are ignored. For those reasons I opted for the solution in this patch. rdar://problem/42567204 Reviewers: kubamracek, yln, kcc, dvyukov, vitalybuka, cryptoad, eugenis, samsonov Subscribers: #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D69546 | 6 年前 | |
sanitizer_common: fix format strings Fix existing -Wformat warnings. Depends on D107979. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D107980 | 4 年前 | |
[asan] Add %d variable to external_symbolizer_path option, so that user can specify paths relative to the location of the binary. We want way to set a path to llvm-symbolizer that isn't relative to the current working directory; this change adds a variable that expands to the path relative to the current binary. This approach came from comments in https://reviews.llvm.org/D93070 Differential Revision: https://reviews.llvm.org/D94563 | 5 年前 | |
[NFC] Extract InitializePlatformCommonFlags And move some Android specifi declarations from headers Differential Revision: https://reviews.llvm.org/D90811 | 5 年前 | |
[Sanitizer][Darwin] Cleanup MaybeReexec() function and usage While investigating another issue, I noticed that MaybeReexec() never actually "re-executes via execv()" anymore. DyldNeedsEnvVariable() only returned true on macOS 10.10 and below. Usually, I try to avoid "unnecessary" cleanups (it's hard to be certain that there truly is no fallout), but I decided to do this one because: * I initially tricked myself into thinking that MaybeReexec() was relevant to my original investigation (instead of being dead code). * The deleted code itself is quite complicated. * Over time a few other things were mushed into MaybeReexec(): initializing MonotonicNanoTime(), verifying interceptors are working, and stripping the DYLD_INSERT_LIBRARIES env var to avoid problems when forking. * This platform-specific thing leaked into sanitizer_common.h. * The ReexecDisabled() config nob relies on the "strong overrides weak pattern", which is now problematic and can be completely removed. * ReexecDisabled() actually hid another issue with interceptors not working in unit tests. I added an explicit verify_interceptors (defaults to true) option instead. Differential Revision: https://reviews.llvm.org/D129157 | 3 年前 | |
[NFC][sanitizer] Atomix relaxed in TwoLevelMap This is NOOP in x86_64. On arch64 it avoids Data Memory Barrier with visible improvements on micro benchmarks. Reviewed By: dvyukov Differential Revision: https://reviews.llvm.org/D112391 | 4 年前 | |
[compiler-rt] clang-format FreeBSD-specific sanitizer sources Formatting only, no functional change intended. | 6 年前 | |
[Sanitizer][Darwin] Cleanup MaybeReexec() function and usage While investigating another issue, I noticed that MaybeReexec() never actually "re-executes via execv()" anymore. DyldNeedsEnvVariable() only returned true on macOS 10.10 and below. Usually, I try to avoid "unnecessary" cleanups (it's hard to be certain that there truly is no fallout), but I decided to do this one because: * I initially tricked myself into thinking that MaybeReexec() was relevant to my original investigation (instead of being dead code). * The deleted code itself is quite complicated. * Over time a few other things were mushed into MaybeReexec(): initializing MonotonicNanoTime(), verifying interceptors are working, and stripping the DYLD_INSERT_LIBRARIES env var to avoid problems when forking. * This platform-specific thing leaked into sanitizer_common.h. * The ReexecDisabled() config nob relies on the "strong overrides weak pattern", which is now problematic and can be completely removed. * ReexecDisabled() actually hid another issue with interceptors not working in unit tests. I added an explicit verify_interceptors (defaults to true) option instead. Differential Revision: https://reviews.llvm.org/D129157 | 3 年前 | |
[NFC][compiler-rt][fuchsia] Add InitShadowBounds declaration to header Forgot to include this as a part of a11aea68a4b31e72bc0b84bde5f3210048287d28. | 4 年前 | |
Disable getauxval for Go We want the Go build to not use getauxval, as we must support glibc < 2.16 platforms. Reviewed By: dvyukov Differential Revision: https://reviews.llvm.org/D84859 | 5 年前 | |
compiler-rt: move all __GLIBC_PREREQ into own header file Reviewers: eugenis Subscribers: dberris, #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D68177 llvm-svn: 373632 | 6 年前 | |
[NFC][sanitizer] Add MurMur2Hash64Builder Depends on D111176. Differential Revision: https://reviews.llvm.org/D111177 | 4 年前 | |
[sanitizer] Remove cpplint annotations cpplint was removed by D107197 Differential Revision: https://reviews.llvm.org/D107198 | 4 年前 | |
[SanitizerCoverage] add weak definitions for the load/store callbacks. Add weak definitions for the load/store callbacks. This matches the weak definitions for all other SanitizerCoverage callbacks. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D129801 | 3 年前 | |
[Sanitizers][Darwin] Replace SANITIZER_MAC with SANITIZER_APPLE in source files This is a follow up to [Sanitizers][Darwin] Rename Apple macro SANITIZER_MAC -> SANITIZER_APPLE (D125816) Performed a global search/replace as in title against LLVM sources Differential Revision: https://reviews.llvm.org/D126263 | 4 年前 | |
[sanitizer] Add Leb128 encoding/decoding Reviewed By: dvyukov, kstoimenov Differential Revision: https://reviews.llvm.org/D114464 | 4 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
Revert "SIGSEGV in Sanitizer INTERCEPTOR of strstr function." Breaks Asan on Fuchsia's and ubsan with gcc. This reverts commit 685c94c6cbba4f2bf076b01fd3e0dcb4b1425b53. | 4 年前 | |
[compiler-rt] change internal internal libc invariants llvm-libc is expected to be built with sanitizers and not use interceptors in the long run. For now though, we have a hybrid process, where functions implemented in llvm-libc are instrumented, and glibc fills and sanitizer interceptors fill in the rest. Current sanitizers have an invariant that the REAL(...) function called from inside of an interceptor is uninstrumented. A lot of interceptors call strlen() in order to figure out the size of the region to check/poison. Switch these callsites over to the internal, unsanitized implementation. Reviewed By: hctim, vitalybuka Differential Revision: https://reviews.llvm.org/D108316 | 4 年前 | |
[Sanitizers][Darwin] Replace SANITIZER_MAC with SANITIZER_APPLE in source files This is a follow up to [Sanitizers][Darwin] Rename Apple macro SANITIZER_MAC -> SANITIZER_APPLE (D125816) Performed a global search/replace as in title against LLVM sources Differential Revision: https://reviews.llvm.org/D126263 | 4 年前 | |
sanitizer_common: remove BlockingMutex and RWMutex Remove the legacy typedefs and use Mutex/Lock types directly. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D107043 | 4 年前 | |
[sanitizer] Port sanitizer_common to LoongArch Initial libsanitizer support for LoongArch. It survived all GCC UBSan tests. Major changes: 1. LoongArch port of Linux kernel only supports statx for stat and its families. So we need to add statx_to_stat and use it for stat-like libcalls. The logic is "borrowed" from Glibc. 2. sanitizer_syscall_linux_loongarch64.inc is mostly duplicated from RISC-V port, as the syscall interface is almost same. Reviewed By: SixWeining, MaskRay, XiaodongLoong, vitalybuka Differential Revision: https://reviews.llvm.org/D129371 | 3 年前 | |
[compiler-rt][hwasan] Support for new Intel LAM API New version of Intel LAM patches (https://lore.kernel.org/linux-mm/20220712231328.5294-1-kirill.shutemov@linux.intel.com/) uses a different interface based on arch_prctl(): - arch_prctl(ARCH_GET_UNTAG_MASK, &mask) returns the current mask for untagging the pointers. We use it to detect kernel LAM support. - arch_prctl(ARCH_ENABLE_TAGGED_ADDR, nr_bits) enables pointer tagging for the current process. Because __NR_arch_prctl is defined in different headers, and no other platforms need it at the moment, we only declare internal_arch_prctl() on x86_64. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D129645 | 3 年前 | |
Init project. | 10 个月前 | |
[SystemZ] [Sanitizer] Bugfixes in internal_clone(). The __flags variable needs to be of type 'long' in order to get sign extended properly. internal_clone() uses an svc (Supervisor Call) directly (as opposed to internal_syscall), and therefore needs to take care to set errno and return -1 as needed. Review: Ulrich Weigand | 4 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
[compiler-rt] NFC: Fix trivial typo Reviewed By: xgupta Differential Revision: https://reviews.llvm.org/D77457 | 4 年前 | |
[sanitizer] Add Lempel–Ziv–Welch encoder/decoder It's very simple, fast and efficient for the stack depot compression if used on entire pointers. Reviewed By: morehouse, kstoimenov Differential Revision: https://reviews.llvm.org/D114918 | 4 年前 | |
[Sanitizer][Darwin] Factor out code for GCD worker registration This is a NFC change to factor out GCD worker thread registration via the pthread introspection hook. In a follow-up change we also want to register GCD workers for ASan to make sure threads are registered before we attempt to print reports on them. rdar://93276353 Differential Revision: https://reviews.llvm.org/D126351 | 3 年前 | |
[Sanitizer][Darwin] Factor out code for GCD worker registration This is a NFC change to factor out GCD worker thread registration via the pthread introspection hook. In a follow-up change we also want to register GCD workers for ASan to make sure threads are registered before we attempt to print reports on them. rdar://93276353 Differential Revision: https://reviews.llvm.org/D126351 | 3 年前 | |
[Sanitizers][Darwin] Replace SANITIZER_MAC with SANITIZER_APPLE in source files This is a follow up to [Sanitizers][Darwin] Rename Apple macro SANITIZER_MAC -> SANITIZER_APPLE (D125816) Performed a global search/replace as in title against LLVM sources Differential Revision: https://reviews.llvm.org/D126263 | 4 年前 | |
[Sanitizers][Darwin] Replace SANITIZER_MAC with SANITIZER_APPLE in source files This is a follow up to [Sanitizers][Darwin] Rename Apple macro SANITIZER_MAC -> SANITIZER_APPLE (D125816) Performed a global search/replace as in title against LLVM sources Differential Revision: https://reviews.llvm.org/D126263 | 4 年前 | |
sanitizer_common: fix deadlock detector output Print PC of the previous lock, not the current one. The current one will be printed during unwind. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D112533 | 4 年前 | |
Init project. | 10 个月前 | |
sanitizer_common: sanitize time functions We have SleepForSeconds, SleepForMillis and internal_sleep. Some are implemented in terms of libc functions, some -- in terms of syscalls. Some are implemented in per OS files, some -- in libc/nolibc files. That's unnecessary complex and libc functions cause crashes in some contexts because we intercept them. There is no single reason to have calls to libc when we have syscalls (and we have them anyway). Add internal_usleep that is implemented in terms of syscalls per OS. Make SleepForSeconds/SleepForMillis/internal_sleep a wrapper around internal_usleep that is implemented in sanitizer_common.cpp once. Also remove return values for internal_sleep, it's not used anywhere. Eventually it would be nice to remove SleepForSeconds/SleepForMillis/internal_sleep. There is no point in having that many different names for the same thing. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D105718 | 4 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
[Sanitizer][Darwin] Support OS versions before DRIVERKIT Fixes https://github.com/llvm/llvm-project/issues/56960 Differential Revision: https://reviews.llvm.org/D131288 (cherry picked from commit 9ec4ddd224f400e2ec309fa513904525c059cc1e) | 3 年前 | |
[Sanitizers] Cleanup handling of stat64/statfs64 This is a follow up to <LLVM reviews>/D127343, which was reverted due to test failures. There are differences in handling of stat64/statfs64 calls by sanitizers between Linux and macOS. Versions of macOS starting with 10.6 drop the stat64/statfs64 APIs completely, relying on the linker to redirect stat/statfs to the appropriate 64 bit versions. Emitting variables needed by sanitizers is thus controlled by convoluted sets of conditions, involving Linux, IOS, macOS and Android, sprinkled around files. This change clarifies it a bit, allowing to specify presence/absence of stat64/statfs64 for each platform, in a single location. Please note that I wasn't able to test this change on platforms other than macOS and Linux Fedora 34. The previous attempt has caused test failures but couldn't figure out the context. I have a vague suspicion that they were Android and perhaps Fuchsia builds - and some build involving ppc64le, I don't have hardware handy to attempt a test there. Tried to tighten the conditions this time to clearly separate macOS from Linux, so Linux builds should behave same (sanitizerwise) as before the change. Will add people who reported the tests failing before as reviewers, so they can provide context should the change cause the test failures again. Differential Revision: https://reviews.llvm.org/D128476 | 3 年前 | |
[Sanitizers] intercept FreeBSD procctl Reviewers: vitalybuka, emaster Reviewed-By: viatelybuka Differential Revision: https://reviews.llvm.org/D127069 | 3 年前 | |
[Sanitizers] intercept FreeBSD procctl Reviewers: vitalybuka, emaster Reviewed-By: viatelybuka Differential Revision: https://reviews.llvm.org/D127069 | 3 年前 | |
[sanitizer] Port sanitizer_common to LoongArch Initial libsanitizer support for LoongArch. It survived all GCC UBSan tests. Major changes: 1. LoongArch port of Linux kernel only supports statx for stat and its families. So we need to add statx_to_stat and use it for stat-like libcalls. The logic is "borrowed" from Glibc. 2. sanitizer_syscall_linux_loongarch64.inc is mostly duplicated from RISC-V port, as the syscall interface is almost same. Reviewed By: SixWeining, MaskRay, XiaodongLoong, vitalybuka Differential Revision: https://reviews.llvm.org/D129371 | 3 年前 | |
msan: account for AVX state when unpoison ucontext_t ucontext_t can be larger than its static size if it contains AVX state and YMM/ZMM registers. Currently a signal handler that tries to access that state can produce false positives with random origins on stack. Account for the additional ucontext_t state. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D116208 | 4 年前 | |
Revert "[MSAN] add interceptor for timer_create, timer_settime, timer_gettime" This reverts commit 0a4dec6cc2bf17acacc883cd897481028f1cf425. breaks buildbots | 4 年前 | |
[Sanitizers] Remove OpenBSD support (new attempt) - Fixing VS compiler and other cases settings this time. Reviewers: dmajor, hans Reviewed By: hans Differential Revision: https://reviews.llvm.org/D89759 | 5 年前 | |
[Sanitizers] Remove OpenBSD support (new attempt) - Fixing VS compiler and other cases settings this time. Reviewers: dmajor, hans Reviewed By: hans Differential Revision: https://reviews.llvm.org/D89759 | 5 年前 | |
[sanitizer] Use consistent checks for XDR sanitizer_platform_limits_posix.h defines __sanitizer_XDR if SANITIZER_LINUX && !SANITIZER_ANDROID, but sanitizer_platform_limits_posix.cpp tries to check it if HAVE_RPC_XDR_H. This coincidentally works because macOS has a broken <rpc/xdr.h> which causes HAVE_RPC_XDR_H to be 0, but if <rpc/xdr.h> is fixed then clang fails to compile on macOS. Restore the platform checks so that <rpc/xdr.h> can be fixed on macOS. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D130060 | 3 年前 | |
[MIPS][compiler-rt] Fix stat struct's size for O32 ABI Add the MIPS O32 ABI value for the stat struct's size. Differential Revision: https://reviews.llvm.org/D129749. | 3 年前 | |
msan: account for AVX state when unpoison ucontext_t ucontext_t can be larger than its static size if it contains AVX state and YMM/ZMM registers. Currently a signal handler that tries to access that state can produce false positives with random origins on stack. Account for the additional ucontext_t state. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D116208 | 4 年前 | |
Revert "[MSAN] add interceptor for timer_create, timer_settime, timer_gettime" This reverts commit 0a4dec6cc2bf17acacc883cd897481028f1cf425. breaks buildbots | 4 年前 | |
[compiler-rt][sanitizer] Have all OOM-related error messages start with the same format This way downstream tools that read sanitizer output can differentiate between OOM errors reported by sanitizers from other sanitizer errors. Changes: - Introduce ErrorIsOOM for checking if a platform-specific error code from an "mmap" is an OOM err. - Add ReportOOMError which just prepends this error message to the start of a Report call. - Replace some Reports for OOMs with calls to ReportOOMError. - Update necessary tests. Differential Revision: https://reviews.llvm.org/D127161 | 3 年前 | |
[compiler-rt][hwasan] Check for SANITIZER_POSIX before including sanitizer_posix.h Rather than throwing an error. This way we can still use files like hwasan_dynamic_shadow.cpp for other platforms without leading to a preprocessor error. Differential Revision: https://reviews.llvm.org/D106979 | 4 年前 | |
Init project. | 10 个月前 | |
[NFC][sanitizer] Fix veradic-macro warning in RAW_CHECK | 4 年前 | |
[Sanitizers][Darwin] Replace SANITIZER_MAC with SANITIZER_APPLE in source files This is a follow up to [Sanitizers][Darwin] Rename Apple macro SANITIZER_MAC -> SANITIZER_APPLE (D125816) Performed a global search/replace as in title against LLVM sources Differential Revision: https://reviews.llvm.org/D126263 | 4 年前 | |
[Sanitizers] Remove OpenBSD support (new attempt) - Fixing VS compiler and other cases settings this time. Reviewers: dmajor, hans Reviewed By: hans Differential Revision: https://reviews.llvm.org/D89759 | 5 年前 | |
sanitizer_common: fix crashes in parsing of memory profiles ParseUnixMemoryProfile assumes well-formed input with \n at the end, etc. It can over-read the input and crash on basically every line in the case of malformed input. ReadFileToBuffer has cap the max file size (64MB) and returns truncated contents if the file is larger. Thus even if kernel behaves, ParseUnixMemoryProfile crashes on too large /proc/self/smaps. Fix input over-reading in ParseUnixMemoryProfile. Depends on D112792. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D112793 | 4 年前 | |
[sanitizer_common] Implement MemoryMappingLayout for Fuchsia This is needed to port lsan to Fuchsia. Patch By: mcgrathr Differential Revision: https://reviews.llvm.org/D72886 | 6 年前 | |
compiler-rt: Rename .cc file in lib/sanitizer_common to .cpp See https://reviews.llvm.org/D58620 for discussion, and for the commands I ran. In addition I also ran for f in $(svn diff | diffstat | grep .cc | cut -f 2 -d ' '); do rg $f . ; done and manually updated (many) references to renamed files found by that. llvm-svn: 367463 | 6 年前 | |
[Sanitizer][Darwin] Fix log-path_test.cpp In my previous change [1], I added log output that made a test that expected "no output" fail. The easiest solution is to only print the new hint/warning when we at least ask for verbosity=1. [1] https://reviews.llvm.org/D128936 Radar-Id: rdar://96437354 | 3 年前 | |
[sanitizer_common] Several Solaris procmaps fixes Since the introduction of GoogleTest sharding in D122251 <https://reviews.llvm.org/D122251>, some of the Solaris sanitizer tests have been running extremly long (up to an hour) while they took mere seconds before. Initial investigation suggests that massive lock contention in Solaris procfs is involved here. However, there's an easy way to somewhat reduce the impact: while the current ReadProcMaps uses ReadFileToBuffer to read /proc/self/xmap, that function primarily caters to Linux procfs reporting file sizes of 0 while the size on Solaris is accurate. This patch makes use of that, reducing the number of syscalls involved and reducing the runtime of affected tests by a factor of 4. Besides, it handles shared mappings and doesn't call readlink for unnamed map entries. Tested on sparcv9-sun-solaris2.11 and amd64-pc-solaris2.11. Differential Revision: https://reviews.llvm.org/D129837 | 3 年前 | |
[AArch64][compiler-rt] Strip PAC from the link register. -mbranch-protection protects the LR on the stack with PAC. When the frames are walked the LR need to be cleared. This inline assembly later will be replaced with a new builtin. Test: build with -DCMAKE_C_FLAGS="-mbranch-protection=standard". Reviewed By: kubamracek Differential Revision: https://reviews.llvm.org/D98008 | 5 年前 | |
sanitizer_common: prefix thread-safety macros with SANITIZER_ Currently we use very common names for macros like ACQUIRE/RELEASE, which cause conflicts with system headers. Prefix all macros with SANITIZER_ to avoid conflicts. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D116652 | 4 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
Sign-extend addresses in CompactRingBuffer. Summary: This is neccessary to support solaris/sparc9 where some userspace addresses have all top bits set, as well as, potentially, kernel memory on aarch64. This change does not update the compiler side (HWASan IR pass) which needs to be done separately for the affected targets. Reviewers: ro, vitalybuka Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D91827 | 4 年前 | |
[ubsan] warn inside the sigaction interceptor if static linking is suspected, and continue instead of crashing on null deref [ubsan] warn inside the sigaction interceptor if static linking is suspected, and continue instead of crashing on null deref Reviewed By: kostik Differential Revision: https://reviews.llvm.org/D109081 | 4 年前 | |
sanitizer_common: replace RWMutex/BlockingMutex with Mutex Mutex supports reader access, OS blocking, spinning, portable and smaller than BlockingMutex. Overall it's supposed to be better than RWMutex/BlockingMutex. Replace RWMutex/BlockingMutex with Mutex. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D106936 | 4 年前 | |
[sanitizer_common] Support Solaris < 11.4 in GetStaticTlsBoundary This patch, on top of D120048 <https://reviews.llvm.org/D120048>, supports GetTls on Solaris 11.3 and Illumos that lack dlpi_tls_modid. It's the same method originally used in D91605 <https://reviews.llvm.org/D91605>, but integrated into GetStaticTlsBoundary. Tested on amd64-pc-solaris2.11, sparcv9-sun-solaris2.11, and x86_64-pc-linux-gnu. Differential Revision: https://reviews.llvm.org/D120059 | 3 年前 | |
[compiler-rt] Silence warnings when building with MSVC Differential Revision: https://reviews.llvm.org/D116872 | 4 年前 | |
sanitizer_common: prefix thread-safety macros with SANITIZER_ Currently we use very common names for macros like ACQUIRE/RELEASE, which cause conflicts with system headers. Prefix all macros with SANITIZER_ to avoid conflicts. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D116652 | 4 年前 | |
[sanitizer] Don't collect unused info | 4 年前 | |
[sanitizer] Run Stack compression in background thread Depends on D114495. Reviewed By: dvyukov Differential Revision: https://reviews.llvm.org/D114498 | 4 年前 | |
[NFC][sanitizer] Add StackDepotTestOnlyUnmap | 4 年前 | |
Port address sanitizer to LoongArch Depends on D129371. It survived all GCC ASan tests. Changes are trivial and mostly "borrowed" RISC-V logics, except that a different SHADOW_OFFSET is used. Reviewed By: SixWeining, MaskRay, XiaodongLoong Differential Revision: https://reviews.llvm.org/D129418 | 3 年前 | |
[Sanitizers][Darwin] Replace SANITIZER_MAC with SANITIZER_APPLE in source files This is a follow up to [Sanitizers][Darwin] Rename Apple macro SANITIZER_MAC -> SANITIZER_APPLE (D125816) Performed a global search/replace as in title against LLVM sources Differential Revision: https://reviews.llvm.org/D126263 | 4 年前 | |
sanitizer_common: fix __sanitizer_get_module_and_offset_for_pc signature mismatch This fixes the following error: sanitizer_interface_internal.h:77:7: error: conflicting types for '__sanitizer_get_module_and_offset_for_pc' int __sanitizer_get_module_and_offset_for_pc( common_interface_defs.h:349:5: note: previous declaration is here int __sanitizer_get_module_and_offset_for_pc(void *pc, char *module_path, I am getting it on a code that uses sanitizer_common (includes internal headers), but also transitively gets includes of the public headers in tests via an internal version of gtest. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D118910 | 4 年前 | |
[sanitizers] include build ids in stacks on linux. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D114294 | 4 年前 | |
[sanitizer] Skip stack symbolization when not required for print format Adds a check to avoid symbolization when printing stack traces if the stack_trace_format flag does not need it. While there is a symbolize flag that can be turned off to skip some of the symbolization, SymbolizePC() still unconditionally looks up the module name and offset. Avoid invoking SymbolizePC() at all if not needed. This is an efficiency improvement when dumping all stack traces as part of the memory profiler in D87120, for large stripped apps where we want to symbolize as a post pass. Differential Revision: https://reviews.llvm.org/D88361 | 5 年前 | |
[compiler-rt] NFC: Fix trivial typo Reviewed By: xgupta Differential Revision: https://reviews.llvm.org/D77457 | 4 年前 | |
[sanitizer] Cleanup -Wnon-virtual-dtor warnings | 5 年前 | |
[compiler-rt] Use empty SuspendedThreadsList for Fuchsia d48f2d7 made destructor of SuspendedThreadsList protected, so we need an empty subclass to pass to the callback now. Differential Revision: https://reviews.llvm.org/D90695 | 5 年前 | |
[compiler-rt] Use empty SuspendedThreadsList for Fuchsia d48f2d7 made destructor of SuspendedThreadsList protected, so we need an empty subclass to pass to the callback now. Differential Revision: https://reviews.llvm.org/D90695 | 5 年前 | |
sanitizer_common: remove BlockingMutex and RWMutex Remove the legacy typedefs and use Mutex/Lock types directly. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D107043 | 4 年前 | |
[lsan][Darwin][nfc] Fix thread vector size The reserve constructor was removed in 44f55509d75d8c67077810bb6d9f3bedaea05831 but this one was missed. As a result, we attempt to iterate through 1024 threads each time, most of which are 0. Differential Revision: https://reviews.llvm.org/D129897 | 3 年前 | |
sanitizer_common: remove BlockingMutex and RWMutex Remove the legacy typedefs and use Mutex/Lock types directly. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D107043 | 4 年前 | |
Silence warning with MSVC. Fixes: [2587/4073] Building CXX object projects\compiler-rt\lib\sanitizer_common\CMakeFiles\RTSanitizerCommon.x86_64.dir\sanitizer_stoptheworld_win.cpp.obj D:\git\llvm-project\compiler-rt\lib\sanitizer_common\sanitizer_stoptheworld_win.cpp(125,33): warning: comparison of integers of different signs: 'DWORD' (aka 'unsigned long') and 'int' [-Wsign-compare] if (SuspendThread(thread) == -1) { ~~~~~~~~~~~~~~~~~~~~~ ^ ~~ 1 warning generated. | 4 年前 | |
[sanitizer][NFC] Remove InternalScopedString::size() size() is inconsistent with length(). In most size() use cases we can replace InternalScopedString with InternalMmapVector. Remove non-constant data() to avoid direct manipulations of internal buffer. append() should be enought to modify InternalScopedString. | 5 年前 | |
[UBSan][clang][compiler-rt] Applying non-zero offset to nullptr is undefined behaviour Summary: Quote from http://eel.is/c++draft/expr.add#4: 4 When an expression J that has integral type is added to or subtracted from an expression P of pointer type, the result has the type of P. (4.1) If P evaluates to a null pointer value and J evaluates to 0, the result is a null pointer value. (4.2) Otherwise, if P points to an array element i of an array object x with n elements ([dcl.array]), the expressions P + J and J + P (where J has the value j) point to the (possibly-hypothetical) array element i+j of x if 0≤i+j≤n and the expression P - J points to the (possibly-hypothetical) array element i−j of x if 0≤i−j≤n. (4.3) Otherwise, the behavior is undefined. Therefore, as per the standard, applying non-zero offset to nullptr (or making non-nullptr a nullptr, by subtracting pointer's integral value from the pointer itself) is undefined behavior. (*if* nullptr is not defined, i.e. e.g. -fno-delete-null-pointer-checks was *not* specified.) To make things more fun, in C (6.5.6p8), applying *any* offset to null pointer is undefined, although Clang front-end pessimizes the code by not lowering that info, so this UB is "harmless". Since rL369789 (D66608 [InstCombine] icmp eq/ne (gep inbounds P, Idx..), null -> icmp eq/ne P, null) LLVM middle-end uses those guarantees for transformations. If the source contains such UB's, said code may now be miscompiled. Such miscompilations were already observed: * https://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20190826/687838.html * https://github.com/google/filament/pull/1566 Surprisingly, UBSan does not catch those issues ... until now. This diff teaches UBSan about these UB's. getelementpointer inbounds is a pretty frequent instruction, so this does have a measurable impact on performance; I've addressed most of the obvious missing folds (and thus decreased the performance impact by ~5%), and then re-performed some performance measurements using my [[ https://github.com/darktable-org/rawspeed | RawSpeed ]] benchmark: (all measurements done with LLVM ToT, the sanitizer never fired.) * no sanitization vs. existing check: average +21.62% slowdown * existing check vs. check after this patch: average 22.04% slowdown * no sanitization vs. this patch: average 48.42% slowdown Reviewers: vsk, filcab, rsmith, aaron.ballman, vitalybuka, rjmccall, #sanitizers Reviewed By: rsmith Subscribers: kristof.beyls, nickdesaulniers, nikic, ychen, dtzWill, xbolva00, dberris, arphaman, rupprecht, reames, regehr, llvm-commits, cfe-commits Tags: #clang, #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D67122 llvm-svn: 374293 | 6 年前 | |
[Darwin] Remove workaround for symbolication in iOS simulator runtimes A while ago we added some code to the sanitizer runtimes for iOS simulators to allow atos (external process) to inspect the sanitized process during report generation to enable symbolication. This was done by setting the __check_mach_ports_lookup env var early during process startup which came with a couple of complications. This workaround is not required anymore and removing it fixes TSan in the iOS simulator after the new TSan runtime landed. (https://reviews.llvm.org/D112603) Relevant/reverted revisions: https://reviews.llvm.org/D78178 https://reviews.llvm.org/D78179 https://reviews.llvm.org/D78525 rdar://86472733 Differential Revision: https://reviews.llvm.org/D115767 | 4 年前 | |
Revert "[sanitizer] Don't run malloc hooks for stacktraces" Msan crashes on clang-s390x-linux bot This reverts commit d3531fc7f0053a7fe68317521ee6491da6e36733. | 4 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
[compiler-rt] Avoid truncating Symbolizer output Repalce the fixed buffer in SymbolizerProcess with InternalScopedString, and simply append to it when reading data. Fixes #55460 Reviewed By: vitalybuka, leonardchan Differential Revision: https://reviews.llvm.org/D126580 | 3 年前 | |
compiler-rt: Rename .cc file in lib/sanitizer_common to .cpp See https://reviews.llvm.org/D58620 for discussion, and for the commands I ran. In addition I also ran for f in $(svn diff | diffstat | grep .cc | cut -f 2 -d ' '); do rg $f . ; done and manually updated (many) references to renamed files found by that. llvm-svn: 367463 | 6 年前 | |
[sanitizer] Cleanup -Wnon-virtual-dtor warnings | 5 年前 | |
Reland "[ASan] Use debuginfo for symbolization." This reverts commit 99796d06dbe11c8f81376ad1d42e7f17d2eff6ae. Hint: Looking here because your manual invocation of something in 'check-asan' broke? You need a new symbolizer (after D123538). An upcoming patch will remove the internal metadata for global variables. With D123534 and D123538, clang now emits DWARF debug info for constant strings (the only global variable type it was missing), and llvm-symbolizer is now able to symbolize all global variable addresses (where previously it wouldn't give you the file:line information). Move ASan's runtime over from the internal metadata to DWARF. Differential Revision: https://reviews.llvm.org/D127552 | 3 年前 | |
[Sanitizers][Darwin] Replace SANITIZER_MAC with SANITIZER_APPLE in source files This is a follow up to [Sanitizers][Darwin] Rename Apple macro SANITIZER_MAC -> SANITIZER_APPLE (D125816) Performed a global search/replace as in title against LLVM sources Differential Revision: https://reviews.llvm.org/D126263 | 4 年前 | |
[Sanitizers][Darwin] Replace SANITIZER_MAC with SANITIZER_APPLE in source files This is a follow up to [Sanitizers][Darwin] Rename Apple macro SANITIZER_MAC -> SANITIZER_APPLE (D125816) Performed a global search/replace as in title against LLVM sources Differential Revision: https://reviews.llvm.org/D126263 | 4 年前 | |
Revert "[sanitizer] Don't run malloc hooks for stacktraces" Msan crashes on clang-s390x-linux bot This reverts commit d3531fc7f0053a7fe68317521ee6491da6e36733. | 4 年前 | |
[sanitizer] Don't call dlerror() after swift_demangle lookup through dlsym Because the call to dlerror() may actually want to print something, which turns into a deadlock as showcased in #49223. Instead rely on further call to dlsym to clear dlerror internal state if they need to check the return status. Differential Revision: https://reviews.llvm.org/D128992 | 3 年前 | |
[Sanitizers][Darwin] Replace SANITIZER_MAC with SANITIZER_APPLE in source files This is a follow up to [Sanitizers][Darwin] Rename Apple macro SANITIZER_MAC -> SANITIZER_APPLE (D125816) Performed a global search/replace as in title against LLVM sources Differential Revision: https://reviews.llvm.org/D126263 | 4 年前 | |
[Darwin] Remove workaround for symbolication in iOS simulator runtimes A while ago we added some code to the sanitizer runtimes for iOS simulators to allow atos (external process) to inspect the sanitized process during report generation to enable symbolication. This was done by setting the __check_mach_ports_lookup env var early during process startup which came with a couple of complications. This workaround is not required anymore and removing it fixes TSan in the iOS simulator after the new TSan runtime landed. (https://reviews.llvm.org/D112603) Relevant/reverted revisions: https://reviews.llvm.org/D78178 https://reviews.llvm.org/D78179 https://reviews.llvm.org/D78525 rdar://86472733 Differential Revision: https://reviews.llvm.org/D115767 | 4 年前 | |
[compiler-rt] Add the common FreeBSD AArch64 support Reviewed by: vitalybuka Differential Revision: https://reviews.llvm.org/D125756 | 3 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
[sanitizer] Add hexagon support to sanitizer-common Adds build support for hexagon linux to sanitizer common. | 4 年前 | |
[sanitizer] Port sanitizer_common to LoongArch Initial libsanitizer support for LoongArch. It survived all GCC UBSan tests. Major changes: 1. LoongArch port of Linux kernel only supports statx for stat and its families. So we need to add statx_to_stat and use it for stat-like libcalls. The logic is "borrowed" from Glibc. 2. sanitizer_syscall_linux_loongarch64.inc is mostly duplicated from RISC-V port, as the syscall interface is almost same. Reviewed By: SixWeining, MaskRay, XiaodongLoong, vitalybuka Differential Revision: https://reviews.llvm.org/D129371 | 3 年前 | |
[NFC] Fix banner | 5 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
msan: account for AVX state when unpoison ucontext_t ucontext_t can be larger than its static size if it contains AVX state and YMM/ZMM registers. Currently a signal handler that tries to access that state can produce false positives with random origins on stack. Account for the additional ucontext_t state. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D116208 | 4 年前 | |
msan: disble CHECK test on powerpc64 It seems that CHECK terminates the process with 0 status on powerpc64: https://reviews.llvm.org/D112440#3084251 Disable the test for now. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D112455 | 4 年前 | |
tsan: fix failures after multi-threaded fork Creating threads after a multi-threaded fork is semi-supported, we don't give particular guarantees, but we try to not fail on simple cases and we have die_after_fork=0 flag that enables not dying on creation of threads after a multi-threaded fork. This flag is used in the wild: https://github.com/mongodb/mongo/blob/23c052e3e321dbab90f1863d4d5539d7c1a1cf44/SConstruct#L3599 fork_multithreaded.cpp test started hanging in debug mode after the recent "tsan: fix deadlock during race reporting" commit, which added proactive ThreadRegistryLock check in SlotLock. But the test broke earlier after "tsan: remove quadratic behavior in pthread_join" commit which made tracking of alive threads based on pthread_t stricter (CHECK-fail on 2 threads with the same pthread_t, or joining a non-existent thread). When we start a thread after a multi-threaded fork, the new pthread_t can actually match one of existing values (for threads that don't exist anymore). Thread creation started CHECK-failing on this, but the test simply ignored this CHECK failure in the child thread and "passed". But after "tsan: fix deadlock during race reporting" the test started hanging dead, because CHECK failures recursively lock thread registry. Fix this purging all alive threads from thread registry on fork. Also the thread registry mutex somehow lost the internal deadlock detector id and was excluded from deadlock detection. If it would have the id, the CHECK wouldn't hang because of the nested CHECK failure due to the deadlock. But then again the test would have silently ignore this error as well and the bugs wouldn't have been noticed. Add the deadlock detector id to the thread registry mutex. Also extend the test to check more cases and detect more bugs. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D116091 | 4 年前 | |
sanitizer_common: prefix thread-safety macros with SANITIZER_ Currently we use very common names for macros like ACQUIRE/RELEASE, which cause conflicts with system headers. Prefix all macros with SANITIZER_ to avoid conflicts. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D116652 | 4 年前 | |
sanitizer_common: prefix thread-safety macros with SANITIZER_ Currently we use very common names for macros like ACQUIRE/RELEASE, which cause conflicts with system headers. Prefix all macros with SANITIZER_ to avoid conflicts. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D116652 | 4 年前 | |
Fix -Wformat warnings reported by GCC. Differential Revision: https://reviews.llvm.org/D113099 | 4 年前 | |
[sanitizer] Make DTLS_on_tls_get_addr signal safer Avoid relocating DTV table and use linked list of mmap-ed pages. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D92428 | 5 年前 | |
compiler-rt: Rename .cc file in lib/sanitizer_common to .cpp See https://reviews.llvm.org/D58620 for discussion, and for the commands I ran. In addition I also ran for f in $(svn diff | diffstat | grep .cc | cut -f 2 -d ' '); do rg $f . ; done and manually updated (many) references to renamed files found by that. llvm-svn: 367463 | 6 年前 | |
[sanitizer] Add a few of type_traits tools For D114047 | 4 年前 | |
[Sanitizers][Darwin] Replace SANITIZER_MAC with SANITIZER_APPLE in source files This is a follow up to [Sanitizers][Darwin] Rename Apple macro SANITIZER_MAC -> SANITIZER_APPLE (D125816) Performed a global search/replace as in title against LLVM sources Differential Revision: https://reviews.llvm.org/D126263 | 4 年前 | |
Fix registers for Windows on ARM64 Reviewed By: #sanitizers, vitalybuka Differential Revision: https://reviews.llvm.org/D116376 | 4 年前 | |
[NFC][sanitizer] Minor change: eliminate loop Reviewed By: #sanitizers, fmayer, vitalybuka Differential Revision: https://reviews.llvm.org/D128873 | 3 年前 | |
tsan: capture shadow map start/end on init and reuse in reset Capture the computed shadow begin/end values at the point where the shadow is first created and reuse those values on reset. Introduce new windows-specific function "ZeroMmapFixedRegion" for zeroing out an address space region previously returned by one of the MmapFixed* routines; call this function (on windows) from DoResetImpl tsan_rtl.cpp instead of MmapFixedSuperNoReserve. See https://github.com/golang/go/issues/53539#issuecomment-1168778740 for context; intended to help with updating the syso for Go's windows/amd64 race detector. Differential Revision: https://reviews.llvm.org/D128909 | 3 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
[tsan, go] fix Go windows build Summary: Don't use weak exports when building tsan into a shared library for Go. gcc can't handle the pragmas used to make the weak references. Include files that have been added since the last update to build.bat. (We should really find a better way to list all the files needed.) Add windows version defines (WINVER and _WIN32_WINNT) to get AcquireSRWLockExclusive and ReleaseSRWLockExclusive defined. Define GetProcessMemoryInfo to use the kernel32 version. This is kind of a hack, the windows header files should do this translation for us. I think we're not in the right family partition (we're using Desktop, but that translation only happens for App and System partitions???), but hacking the family partition seems equally gross and I have no idea what the consequences of that might be. Patch by Keith Randall. Reviewers: dvyukov, vitalybuka Reviewed By: vitalybuka Subscribers: jfb, delcypher, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D68599 llvm-svn: 373984 | 6 年前 | |
Remove NOLINTs from compiler-rt llvm-svn: 371687 | 6 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
compiler-rt: Rename .cc file in lib/sanitizer_common to .cpp See https://reviews.llvm.org/D58620 for discussion, and for the commands I ran. In addition I also ran for f in $(svn diff | diffstat | grep .cc | cut -f 2 -d ' '); do rg $f . ; done and manually updated (many) references to renamed files found by that. llvm-svn: 367463 | 6 年前 | |
[sanitizer_common] Declare __sanitizer_on_print in Windows interception. Speculative fix for Windows bot. llvm-svn: 373532 | 6 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
[sanitizer] Add common "demangle" flag Reviewed By: browneee Differential Revision: https://reviews.llvm.org/D116202 | 4 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 4 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 6 年前 | ||
| 7 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 6 年前 | ||
| 5 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 7 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 5 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 7 年前 | ||
| 4 年前 | ||
| 5 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 7 年前 | ||
| 7 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 5 年前 | ||
| 7 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 5 年前 | ||
| 4 年前 | ||
| 5 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 6 年前 | ||
| 6 年前 | ||
| 6 年前 | ||
| 6 年前 | ||
| 7 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 5 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 6 年前 | ||
| 4 年前 | ||
| 5 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 6 年前 | ||
| 4 年前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 6 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 5 年前 | ||
| 6 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 7 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 10 个月前 | ||
| 4 年前 | ||
| 7 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 10 个月前 | ||
| 4 年前 | ||
| 7 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 10 个月前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 5 年前 | ||
| 4 年前 | ||
| 6 年前 | ||
| 6 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 5 年前 | ||
| 4 年前 | ||
| 7 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 5 年前 | ||
| 4 年前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 5 年前 | ||
| 6 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 7 年前 | ||
| 3 年前 | ||
| 6 年前 | ||
| 5 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 7 年前 | ||
| 7 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 5 年前 | ||
| 7 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 5 年前 | ||
| 6 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 7 年前 | ||
| 6 年前 | ||
| 6 年前 | ||
| 7 年前 | ||
| 6 年前 | ||
| 6 年前 | ||
| 7 年前 | ||
| 4 年前 |