~/talk

Killing Uninitialized Memory: Protecting the OS Without Destroying Performance

Talkat CppCon 2019 · 2019-09-15..09-20· [security]
name:J. Bialek
links:none on file
name:S. Block
links:none on file
slides:none on file

A compiler-level mitigation named InitAll automatically zero-initializes POD structures on the stack across Windows and Hyper‑V, shipping to customers in May and protecting ~600M devices. Implementation uses front-end init insertion plus optimizations: redundant-store elimination, on‑demand escape analysis, scalar replacement of aggregates, and memsets unrolled/vectorized. Resulting regressions land under targets — <1% real-world regression and <2% synthetic, ~0.1% code‑size increase — and multiple reported uninitialized-memory CVEs are killed on updated builds.

AI-written summary · about

  1. 0:00Introduction and team intro
  2. 1:14Security impact of uninitialized memory
  3. 7:32Prevalence and cost of uninitialized bugs
  4. 10:19Limitations of existing solutions
  5. 12:25Design criteria for Windows
  6. 13:07Introducing /itall and stack variables
  7. 15:57Prototype and compatibility testing
  8. 17:43Performance testing methodology
  9. 20:12Initial performance regressions
  10. 23:43Optimizing memset calls
  11. 27:35Redundant store elimination
  12. 34:15Partial memset and struct optimizations
  13. 37:29Stack frame and kernel optimizations
  14. 39:58Faster memset alternatives
  15. 41:21Final performance results
  16. 42:46Shipping /itall in Windows
  17. 44:31Developer experience and static analysis
  18. 46:17Compatibility challenges
  19. 48:01Industry adoption and future plans
  20. 49:46Heap and allocator improvements
  21. 50:50Call for C/C++ language changes
  22. 53:16Q&A and closing remarks
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.