Content deleted Content added
m Reverted 3 edits by 114.124.236.209 (talk) to last revision by Kiwi128 (TW) |
No edit summary Tags: references removed Visual edit Mobile edit Mobile web edit |
||
Line 42:
==Bounds checking==
Bounds checking is a compiler-based technique that adds run-time bounds information for each allocated block of memory, and checks all pointers against those at run-time. For C and C++, bounds checking can be performed at pointer calculation time or at dereference time.
Implementations of this approach use either a central repository, which describes each allocated block of memory,
▲Implementations of this approach use either a central repository, which describes each allocated block of memory,<ref name="joneskelly"/><ref name="safecodesva"/><ref name="asan"/> or [[fat pointer]]s,<ref name="failsafec"/> which contain both the pointer and additional data, describing the region that they point to.
==Tagging==
Line 75 ⟶ 73:
===Clang/[[LLVM]]===
Clang supports three buffer overflow detectors, namely
[[AddressSanitizer]] (-fsanitize=address),<ref name="asan">{{cite web|url=https://code.google.com/p/address-sanitizer/|title=google/sanitizers}}</ref>
-fsanitize=bounds,<ref>{{cite web|url=http://clang.llvm.org/docs/UsersManual.html |title=Clang Compiler User's Manual — Clang 3.5 documentation |publisher=Clang.llvm.org |date= |accessdate=2014-04-27}}</ref>
and SafeCode.<ref>{{cite web|url=http://safecode.cs.illinois.edu/ |title=SAFECode |publisher=Safecode.cs.illinois.edu |date= |accessdate=2014-04-27}}</ref>
Line 84 ⟶ 82:
=== {{Anchor|FSC}}Fail-Safe C ===
''Fail-Safe C''<ref name="failsafec">{{cite web|url=http://staff.aist.go.jp/y.oiwa/FailSafeC/index-en.html|title=Fail-Safe C: Top Page|date=2013-05-07|publisher=Staff.aist.go.jp|accessdate=2014-04-27}}</ref> is an open-source memory-safe ANSI C compiler that performs bounds checking based on fat pointers and object-oriented memory access.<ref>{{cite web|url=http://staff.aist.go.jp/y.oiwa/publications/2005-PhDthesis.pdf |title=thesis.dvi |website=Staff.aist.go.jp |date= |accessdate=2016-09-17}}</ref>
===StackGhost (hardware-based)===
|