]> git.lizzy.rs Git - rust.git/commitdiff
Added link to Microsoft's documentation of CFG
authorDr. Koutheir Attouchi <koutheir@gmail.com>
Fri, 21 Aug 2020 18:52:30 +0000 (14:52 -0400)
committerGitHub <noreply@github.com>
Fri, 21 Aug 2020 18:52:30 +0000 (14:52 -0400)
src/doc/unstable-book/src/compiler-flags/control-flow-guard.md

index 03065f5a90723cc8027c0a45e63969e67177322c..c43d91bf070edd97a878a9acdec8039fe954d4b1 100644 (file)
@@ -6,7 +6,7 @@ The tracking issue for this feature is: [#68793](https://github.com/rust-lang/ru
 
 The rustc flag `-Z control-flow-guard` enables the Windows [Control Flow Guard](https://docs.microsoft.com/en-us/windows/win32/secbp/control-flow-guard) (CFG) platform security feature.
 
-CFG is an exploit mitigation designed to enforce control-flow integrity for software running on supported Windows platforms (Windows 8.1 onwards). Specifically, CFG uses runtime checks to validate the target address of every indirect call/jump before allowing the call to complete. 
+CFG is an exploit mitigation designed to enforce control-flow integrity for software running on supported [Windows platforms (Windows 8.1 onwards)](https://docs.microsoft.com/en-us/windows/win32/secbp/control-flow-guard). Specifically, CFG uses runtime checks to validate the target address of every indirect call/jump before allowing the call to complete. 
 
 During compilation, the compiler identifies all indirect calls/jumps and adds CFG checks. It also emits metadata containing the relative addresses of all address-taken functions. At runtime, if the binary is run on a CFG-aware operating system, the loader uses the CFG metadata to generate a bitmap of the address space and marks those addresses that contain valid targets. On each indirect call, the inserted check determines whether the target address is marked in this bitmap. If the target is not valid, the process is terminated.