This is the documentation for the latest (main) development branch of Zephyr. If you are looking for the documentation of previous releases, use the drop-down menu on the left and select the desired version.

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

ENTROPY_GENERATOR || TEST_RANDOM_GENERATOR

(Includes any dependencies from ifs and menus.)

Defaults

No defaults. Implicitly defaults to n.

Kconfig definition

At kernel/Kconfig:645

Included via Kconfig:8Kconfig.zephyr:40

Menu path: (Top) → General Kernel Options → Security Options

config STACK_CANARIES
    bool "Compiler stack canaries"
    depends on ENTROPY_GENERATOR || 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.)