• glider@google.com's avatar
    security: allow using Clang's zero initialization for stack variables · f0fe00d4
    glider@google.com authored
    In addition to -ftrivial-auto-var-init=pattern (used by
    CONFIG_INIT_STACK_ALL now) Clang also supports zero initialization for
    locals enabled by -ftrivial-auto-var-init=zero. The future of this flag
    is still being debated (see https://bugs.llvm.org/show_bug.cgi?id=45497).
    Right now it is guarded by another flag,
    -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang,
    which means it may not be supported by future Clang releases. Another
    possible resolution is that -ftrivial-auto-var-init=zero will persist
    (as certain users have already started depending on it), but the name
    of the guard flag will change.
    
    In the meantime, zero initialization has proven itself as a good
    production mitigation measure against uninitialized locals. Unlike pattern
    initialization, which has a higher chance of triggering existing bugs,
    zero initialization provides safe defaults for strings, pointers, indexes,
    and sizes. On the other hand, patt...
    f0fe00d4
Kconfig.hardening 8.84 KB