You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Updates to make the Acrolinx grammar checker happy (it likes present tense, active verbs, and simple sentences).
Copied a bit more of Amy's suggestion for clarity.
Added version-specific availability info.
Formatted indents like other bullet points in this section.
Copy file name to clipboardExpand all lines: docs/sanitizers/asan-runtime.md
+6-5Lines changed: 6 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -87,11 +87,12 @@ For more information, see the [Differences with Clang 12.0](./asan.md#difference
87
87
> The option `windows_hook_rtl_allocators`, previously an opt-in feature while AddressSanitizer was experimental, is now enabled by default.
88
88
89
89
-`iat_overwrite`
90
-
String, set to `"error"` by default. Possible values are `"error"`, `"protect"`, and `"ignore"`. Certain modules (commonly drivers) may overwrite the [`import address table`](/windows/win32/debug/pe-format#import-address-table) of different modules to provide custom implementations of certain functions for any reason. This option manages the protection level from the runtime regarding overwrites for specific [`memoryapi.h`](/windows/win32/api/memoryapi/) functions.
91
-
* The functions currently tracked for protection are [`VirtualAlloc`](/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc), [`VirtualProtect`](/windows/win32/api/memoryapi/nf-memoryapi-virtualprotect), and [`VirtualQuery`](/windows/win32/api/memoryapi/nf-memoryapi-virtualquery).
92
-
* If set to `"error"`, the default value, the runtime will report an error whenever an overwrite is detected.
93
-
* If set to `"protect"`, the runtime will attempt to avoid using the overwritten definition and proceed. This means the `memoryapi` definition of the function will be used from inside the runtime to avoid infinite recursion. Other modules in the process will still use the overwritten definition.
94
-
* If set to `"ignore"`, the runtime will not attempt to correct any overwrite and proceed with execution.
90
+
String, set to `"error"` by default. Other possible values are `"protect"` and `"ignore"`. Some modules may overwrite the [`import address table`](/windows/win32/debug/pe-format#import-address-table) of other modules to customize implementations of certain functions. For example, drivers commonly provide custom implementations for specific hardware. The `iat_overwrite` option manages the AddressSanitizer runtime's protection against overwrites for specific [`memoryapi.h`](/windows/win32/api/memoryapi/) functions. The runtime currently tracks the [`VirtualAlloc`](/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc), [`VirtualProtect`](/windows/win32/api/memoryapi/nf-memoryapi-virtualprotect), and [`VirtualQuery`](/windows/win32/api/memoryapi/nf-memoryapi-virtualquery) functions for protection. This option is available in Visual Studio 2022 version 17.5 preview 1 and later versions. The following `iat_overwrite` values control how the runtime reacts when protected functions are overwritten:
91
+
92
+
- If set to `"error"` (the default), the runtime reports an error whenever an overwrite is detected.
93
+
- If set to `"protect"`, the runtime attempts to avoid using the overwritten definition and proceeds. Effectively, the original `memoryapi` definition of the function is used from inside the runtime to avoid infinite recursion. Other modules in the process still use the overwritten definition.
94
+
- If set to `"ignore"`, the runtime doesn't attempt to correct any overwritten functions and proceeds with execution.
95
+
95
96
96
97
## <aname="intercepted_functions"></a> AddressSanitizer list of intercepted functions (Windows)
0 commit comments