diff --git a/docs/code-quality/build-reliable-secure-programs.md b/docs/code-quality/build-reliable-secure-programs.md index b2395846a6b..f5ac490c090 100644 --- a/docs/code-quality/build-reliable-secure-programs.md +++ b/docs/code-quality/build-reliable-secure-programs.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Building reliable and secure C++ programs by applying NISTIR 8397 guidelines." title: Build reliable and secure C++ programs -ms.date: 09/07/2023 +ms.date: 09/20/2023 ms.topic: "conceptual" --- @@ -383,7 +383,7 @@ When fuzzing reports a failure, it always naturally provides a reproducible test When using both sanitizers such as [Address Sanitizer (ASan)](../sanitizers/asan.md) and fuzzing: - First run your normal tests with sanitizers enabled to see if there are issues, then once the code is sanitizer-clean start fuzzing. -- For C or C++, there are compilers that automate injection of runtime assertions and meta-data that enable ASan. When compiled for ASan, the resulting binaries link with a runtime library that can precisely diagnose [15+ categories of memory safety errors](../sanitizers/asan.md#error-types) with zero false positives. For C or C++ when you have source, use [LibFuzzer](https://www.llvm.org/docs/LibFuzzer.html); if you enable ASan, LibFuzzer is enabled automatically. +- For C or C++, there are compilers that automate injection of runtime assertions and meta-data that enable ASan. When compiled for ASan, the resulting binaries link with a runtime library that can precisely diagnose [15+ categories of memory safety errors](../sanitizers/asan.md#error-types) with zero false positives. For C or C++ when you have source, use [LibFuzzer](https://www.llvm.org/docs/LibFuzzer.html) which requires ASan to be enabled first. - For libraries written in Java, C#, Python, Rust, and so on, use the [AFL++ framework](https://aflplus.plus/). **Key qualities**