Skip to content

Comment on Ubuntu 24.04 LTS will enable frame pointers by default

Comments

Call stack > Structure > Stack and Frame pointers: https://en.wikipedia.org/wiki/Call_stack#Stack_and_frame_poi...

What do the Coding Guidelines listed in e.g. awesome-safety-critical say about Frame pointers? https://awesome-safety-critical.readthedocs.io/en/latest/#co...

(Edit)

/? "cert" "frame pointer" https://www.google.com/search?q=%22cert%22+%22frame+pointer%... :

- Stack buffer overflow > Exploiting stack buffer overflows: https://en.m.wikipedia.org/wiki/Stack_buffer_overflow :

In figure C above, when an argument larger than 11 bytes is supplied on the command line foo() overwrites local stack data, the saved frame pointer, and most importantly, the return address

What about the Top 25?

/? site:cwe.mitre.org "frame pointer" https://www.google.com/search?q=site%3Acwe.mitre.org+%22fram... :

- CWE-121: Stack-based Buffer Overflow https://cwe.mitre.org/data/definitions/121.html

This is closer to a better approach for security, debuggability, and performance IMHO:

https://news.ycombinator.com/item?id=38138010 :

gdb on Fedora auto-installs signed debuginfo packages with debug symbols; Fedora hosts a debuginfod server for their packages (which are built by Koji) and sets `DEBUGINFOD_URLS=`
Without debug symbols, a debugger has to read unlabeled ASM instructions (or VM opcodes (or an LL IR)).

When frame pointers are omitted, there are fewer places in memory that can be overwritten to hijack control flow of a program.

Someone could easily prepare an demo of a frame pointer buffer overflow exploit to explain?

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.