Session Type
Technical Talk
Date & Time
Wednesday, October 11, 2023, 11:00 AM - 11:30 AM
Introducing hardened modes in libc++

This talk will describe libc++’s approach for hardening its APIs, and how different vendors can leverage it to ship safer software. It will go over various interesting design choices like performance and ABI considerations. To enable use in different contexts (e.g. testing vs production) with varying performance characteristics, the library provides different levels of hardening which make different performance/safety tradeoffs.

Libc++ hardening modes turn library-level undefined behavior into reliable program termination. For example, indexing into a vector using an out-of-bounds index normally leads to undefined behavior (in practice, it can either go undetected or result in a segmentation fault). When hardening is enabled in libc++, the same incorrect usage will instead result in a reliable program termination, making the bug easier to find during testing and more difficult to exploit in case the bug isn't caught during testing.

Location Name
Hall of Cities