:orphan: .. title:: STACK_CANARIES .. option:: CONFIG_STACK_CANARIES *Compiler stack canaries* Type: ``bool`` Help ==== This option enables compiler stack canaries. If stack canaries are supported by the compiler, it will emit extra code that inserts a canary value into the stack frame when a function is entered and validates this value upon exit. Stack corruption (such as that caused by buffer overflow) results in a fatal error condition for the running entity. Enabling this option can result in a significant increase in footprint and an associated decrease in performance. If stack canaries are not supported by the compiler an error will occur at build time. Direct dependencies =================== \ :option:`ENTROPY_GENERATOR ` || \ :option:`TEST_RANDOM_GENERATOR ` *(Includes any dependencies from ifs and menus.)* Defaults ======== No defaults. Implicitly defaults to ``n``. Kconfig definition ================== .. highlight:: kconfig At ``kernel/Kconfig:646`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:30`` Menu path: (Top) → General Kernel Options → Security Options .. parsed-literal:: config STACK_CANARIES bool "Compiler stack canaries" depends on \ :option:`ENTROPY_GENERATOR ` || \ :option:`TEST_RANDOM_GENERATOR ` help This option enables compiler stack canaries. If stack canaries are supported by the compiler, it will emit extra code that inserts a canary value into the stack frame when a function is entered and validates this value upon exit. Stack corruption (such as that caused by buffer overflow) results in a fatal error condition for the running entity. Enabling this option can result in a significant increase in footprint and an associated decrease in performance. If stack canaries are not supported by the compiler an error will occur at build time. *(The 'depends on' condition includes propagated dependencies from ifs and menus.)*