Hardening Your Code
summary
Practical, specific hardening steps and tools rather than platitudes: use version control and git bisect to find offending commits, build and keep zero compiler warnings, add automated unit tests and measure coverage, run static analyzers and nightly dynamic runs with sanitizers, and fuzz inputs with coverage feedback. Running the libstdc++ test suite of 4,300 tests under AddressSanitizer uncovers real issues (three distinct bugs) and the pipeline of tests plus sanitizers plus fuzzing yields fast, actionable bug reports.
AI-written summary · about
chapters (11)
- 0:00Hardening Your Code
- 4:23Version Control
- 6:35A War Story
- 12:11What kind of things should I test?
- 23:01Test with different compilers
- 25:38Static Analysis
- 31:29Sanitizers (2)
- 32:23Using ASAN
- 37:26Undefined Behavior
- 42:02Fuzzing and Dynamic Analysis
- 43:04Wrapping up
related talks
50mSecure development with C++ - Lessons and techniques
22mWriting safe and secure code
59mBeyond Sanitizers...
52mNobody Can Program Correctly - Lessons From 20 Years of Debugging C++ Code
01h 00mSanitize for your Sanity: Sanitizers tools for Modern C++
36mCode Analysis: Empowering developers to write performant, reliable, and safe C++
01h 01mBack to Basics: Debugging and Testing in C++ Software Development
01h 01mSoftware Security
