Skip to content

Commit 7674b7d

Browse files
authored
Update styles, make the grammar checker happy
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.
1 parent 755972d commit 7674b7d

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

docs/sanitizers/asan-runtime.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,12 @@ For more information, see the [Differences with Clang 12.0](./asan.md#difference
8787
> The option `windows_hook_rtl_allocators`, previously an opt-in feature while AddressSanitizer was experimental, is now enabled by default.
8888
8989
- `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+
9596

9697
## <a name="intercepted_functions"></a> AddressSanitizer list of intercepted functions (Windows)
9798

0 commit comments

Comments
 (0)