| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[hwasan] add pattern for short tag in symbolizer Lines with 'record_addr:' are not processed when failing to decode access tag. The regular format is: %02x/%02x but for a short tag it's: %02x/%02x(%02x). Now it will handle both cases. Tested-by: Ivar Henckel <ivar.henckel@sony.com> Reviewed By: fmayer Differential Revision: https://reviews.llvm.org/D141906 | 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 年前 | |
[HWASAN] Implemented LSAN SetLsanTag and IgnoreObjectLocked Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D141642 | 3 年前 | |
[hwasan] support hwasan-match-all-tag flag for callback memory access instrumentation Currently, hwasan-match-all-tag flag is supported in inline memory access instrumentation and outline memory access instrumentation, but not supported in callback memory access instrumentation. - For inline memory access instrumentation: a hwasan-match-all-tag check is added following the tag-mismtach check, if tag from pointer is mismatched with tag from shadow memory and tag from pointer is not equal with hwasan-match-all-tag, then a tag-mismatch will be report. - For outline memory acess instrumentation: MatchAllTag is encoded in AccessInfo, when emit HWASAN memaccess symbols, asm-printer emits assembly instructions to check if tag from pointer is equal with hwasan-match-all-tag. - For callback memory access instrumentation: hwasan-match-all-tag check is not implemented in __hwasan_load/__hwasan_store. This patch implements a set of callback functions: __hwasan_[load|store][1|2|4|8|16|n]_match_all and __hwasan_load[load|store][1|2|4|8|16|n]_match_all_noabort, making hwasan-match-all-tag flag working for callback memory access instrumentation. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D149580 | 3 年前 | |
[HWASAN] Use InTaggableRegion in basic tagging functions For primary use-case when !HWASAN_ALIASING_MODE the function is constant true and should be eliminated by optimizations. In case HWASAN_ALIASING_MODE all new calls to the functions were missing in the first place. We just not use this mode for anything but tests, so we didn't noticed. Addressing @thurston comment on D149293 Reviewed By: thurston Differential Revision: https://reviews.llvm.org/D149305 | 3 年前 | |
Hardware-assisted AddressSanitizer (compiler-rt) Summary: Runtime library for HWASan, initial commit. Does not randomize tags yet, does not handle stack or globals. Reviewers: kcc, pcc, alekseyshl Subscribers: srhines, kubamracek, dberris, mgorny, llvm-commits, krytarowski Differential Revision: https://reviews.llvm.org/D40935 llvm-svn: 320231 | 8 年前 | |
[compiler-rt] Simplify ALIAS() attribute macro Most uses of ALIAS() are in conjunction with WRAPPER_NAME(). Simplify the code and just make ALIAS() turn its argument into a string (similar to Linux kernel's __alias macro). This in turn allows removing WRAPPER_NAME(). NFC. Reviewed By: dvyukov Differential Revision: https://reviews.llvm.org/D151216 | 3 年前 | |
[hwasan] RunMallocHooks with orig_size This matches behaviour of asan. sanitizer_common/TestCases/malloc_hook.cpp should've caught this- but hwasan was on XFAIL. Differential Revision: https://reviews.llvm.org/D151580 | 3 年前 | |
[NFC][sanitizer] Pass user region into OnMapSecondary | 2 年前 | |
[HWASAN] Support short granules in __hwasan_test_shadow Reviewed By: thurston Differential Revision: https://reviews.llvm.org/D149430 | 3 年前 | |
[compiler-rt][hwasan][Fuchsia] Do not emit FindDynamicShadowStart for Fuchsia This function is unused because fuchsia does not support a dynamic shadow. Differential Revision: https://reviews.llvm.org/D105735 | 4 年前 | |
hwasan: Add __hwasan_init_static() function. This function initializes enough of the runtime to be able to run instrumented code in a statically linked executable. It replaces __hwasan_shadow_init() which wasn't doing enough initialization for instrumented code that uses either TLS or IFUNC to work. Differential Revision: https://reviews.llvm.org/D57490 llvm-svn: 352816 | 7 年前 | |
[hwasan] Properly restore SP tag on exceptions Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D152036 | 3 年前 | |
[HWASan] Use page aliasing on x86_64. Userspace page aliasing allows us to use middle pointer bits for tags without untagging them before syscalls or accesses. This should enable easier experimentation with HWASan on x86_64 platforms. Currently stack, global, and secondary heap tagging are unsupported. Only primary heap allocations get tagged. Note that aliasing mode will not work properly in the presence of fork(), since heap memory will be shared between the parent and child processes. This mode is non-ideal; we expect Intel LAM to enable full HWASan support on x86_64 in the future. Reviewed By: vitalybuka, eugenis Differential Revision: https://reviews.llvm.org/D98875 | 5 年前 | |
[hwasan] provide a runtime flag for printing remaining threads in error report as an extra information This patch adds a runtime flag print_live_threads_info, which defaults to true, controls whether or not prints remaining threads in error report as an extra information. We(ByteDance) are in the process of enabling hwasan for our server-side applications on AArch64/Linux, these server-side applications have thousands of threads, so it is nice to have this option. Reviewed By: fmayer Differential Revision: https://reviews.llvm.org/D148513 | 3 年前 | |
[HWASAN] Init lsan and install at_exit hook Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D141146 | 3 年前 | |
[NFC][sanitizer] Move ArrayRef into own header | 3 年前 | |
[NFC][sanitizer] Move ArrayRef into own header | 3 年前 | |
[clang] accept -fsanitize-ignorelist= in addition to -fsanitize-blacklist= Use that for internal names (including the default ignorelists of the sanitizers). Differential Revision: https://reviews.llvm.org/D101832 | 5 年前 | |
[Sanitizers] Remove unused parameter from COMMON_INTERCEPTOR_MUNMAP_IMPL This was a result of copy/paste from the MMAP interceptor which uses the parameter to swtich between mmap and mmap64. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D152980 | 3 年前 | |
[compiler-rt][aarch64] Add PAC-RET/BTI property to hwasan_interceptors_vfork.S D100143 added similar annotations but missed this file. Differential Revision: https://reviews.llvm.org/D100354 | 5 年前 | |
[hwasan] support hwasan-match-all-tag flag for hwasan meminstrinsic calls This patch implements __hwasan_memset_match_all, __hwasan_memcpy_match_all and __hwasan_memmove_match_all, making hwasan-match-all-tag flag working for hwasan versions of memset, memcpy and memmove. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D149943 | 3 年前 | |
[HWASAN] Prevent crashes on thread exit I can't figure out how to reproduce this for test, but I see the case on random binaries. The known issue is with GLIBC, others may have a workaround, e.g. Bionic, https://cs.android.com/android/platform/superproject/+/master:bionic/libc/bionic/pthread_exit.cpp;l=149 see signals blocked above. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D150401 | 3 年前 | |
[compiler-rt] [hwasan] Replace INLINE with inline Fixes the build after landing D87562. | 5 年前 | |
[compiler-rt][hwasan] Refactor kAliasRegionStart usage This moves logic for setting kAliasRegionStart into hwasan_allocator.cpp so other platforms that do not support aliasing mode will not need to define kAliasRegionStart. Differential Revision: https://reviews.llvm.org/D105725 | 4 年前 | |
[hwasan] support hwasan-match-all-tag flag for hwasan meminstrinsic calls This patch implements __hwasan_memset_match_all, __hwasan_memcpy_match_all and __hwasan_memmove_match_all, making hwasan-match-all-tag flag working for hwasan versions of memset, memcpy and memmove. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D149943 | 3 年前 | |
[hwasan] Add non-exception variant of operator delete[] for hwasan Differential Revision: https://reviews.llvm.org/D145459 | 3 年前 | |
hwasan: enable mmap interception (no tagging used) This enables HWASan interception for mmap, to prevent users from allocating in the shadow memory regions. For compatibility, it does not use pointer tagging, nor does it allow MAP_FIXED with a tagged address. This patch initializes the common interceptors, but that should be a no-op (except for the mmap interceptor), due to the disable-by-default nature of hwasan_platform_interceptors.h (from D150708). As the first patch to utilize this common interceptor machinery for HWASan, it also defines some macros (e.g., COMMON_INTERCEPT_FUNCTION) that will be useful as future interceptors are enabled. TestCases/Posix/mmap_write_exec.cpp now passes for HWASan. Reviewed By: kstoimenov, vitalybuka Differential Revision: D151262 | 3 年前 | |
[HWASAN] Added empty WordIsPoisoned for LSAN support. Currently it is just an empty implementation to allow the project to link. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D141147 | 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 年前 | |
[HWASan] Add __hwasan_init to .preinit_array. Fixes segfaults on x86_64 caused by instrumented code running before shadow is set up. Reviewed By: pcc Differential Revision: https://reviews.llvm.org/D118171 | 4 年前 | |
Reland "[compiler-rt][hwasan] Add unused attribute to GetRegisters" This was reverted bc of breakage on Fuchsia, but we landed a local fix for this. | 3 年前 | |
[NFC][sanitizer] Move ArrayRef into own header | 3 年前 | |
hwasan: Improve precision of checks using short granule tags. A short granule is a granule of size between 1 and TG-1 bytes. The size of a short granule is stored at the location in shadow memory where the granule's tag is normally stored, while the granule's actual tag is stored in the last byte of the granule. This means that in order to verify that a pointer tag matches a memory tag, HWASAN must check for two possibilities: * the pointer tag is equal to the memory tag in shadow memory, or * the shadow memory tag is actually a short granule size, the value being loaded is in bounds of the granule and the pointer tag is equal to the last byte of the granule. Pointer tags between 1 to TG-1 are possible and are as likely as any other tag. This means that these tags in memory have two interpretations: the full tag interpretation (where the pointer tag is between 1 and TG-1 and the last byte of the granule is ordinary data) and the short tag interpretation (where the pointer tag is stored in the granule). When HWASAN detects an error near a memory tag between 1 and TG-1, it will show both the memory tag and the last byte of the granule. Currently, it is up to the user to disambiguate the two possibilities. Because this functionality obsoletes the right aligned heap feature of the HWASAN memory allocator (and because we can no longer easily test it), the feature is removed. Also update the documentation to cover both short granule tags and outlined checks. Differential Revision: https://reviews.llvm.org/D63908 llvm-svn: 365551 | 6 年前 | |
Fix "[compiler-rt] Introduce asm macros for interceptor trampolines" Add missing ASM_INTERCEPTOR_TRAMPOLINE(setjmp). | 3 年前 | |
[compiler-rt] Introduce asm macros for interceptor trampolines This introduces macros for asm sources to define trampolines, and aliases to trampolines. Because we currently do not yet have any real trampolines, this change is a NFC. Reviewed By: dvyukov, vitalybuka Differential Revision: https://reviews.llvm.org/D151317 | 3 年前 | |
[compiler-rt] Introduce asm macros for interceptor trampolines This introduces macros for asm sources to define trampolines, and aliases to trampolines. Because we currently do not yet have any real trampolines, this change is a NFC. Reviewed By: dvyukov, vitalybuka Differential Revision: https://reviews.llvm.org/D151317 | 3 年前 | |
[compiler-rt][aarch64] Add PAC-RET/BTI support to HWASAN. Support for -mbranch-protection. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D100143 | 5 年前 | |
[RISC-V][HWASAN] Add tag mismatch routines for HWASAN required for RISC-V Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D131341 | 3 年前 | |
[HWASAN] Fix verbose_threads Looks like D104248 acidentally moved the code. | 3 年前 | |
[HWASAN] Set os_id in Thread::Init to make sure that the thread can be found by GetThreadByOsIDLocked. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D143125 | 3 年前 | |
[HWSAN] Use ThreadArgRetval in HWSAN Fixes false leaks on thread arg, retval. Reviewed By: Enna1 Differential Revision: https://reviews.llvm.org/D150166 | 3 年前 | |
[HWSAN] Use ThreadArgRetval in HWSAN Fixes false leaks on thread arg, retval. Reviewed By: Enna1 Differential Revision: https://reviews.llvm.org/D150166 | 3 年前 | |
[HWASan] Intercept setjmp/longjmp on x86_64. Reviewed By: xiangzhangllvm Differential Revision: https://reviews.llvm.org/D109790 | 4 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 8 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 7 年前 | ||
| 3 年前 | ||
| 5 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 5 年前 | ||
| 3 年前 | ||
| 5 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 5 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 7 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 6 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 5 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 4 年前 |