[3.14] gh-144759: Fix undefined behavior from NULL pointer arithmetic in lexer (GH-144788) (#144834)
gh-144759: Fix undefined behavior from NULL pointer arithmetic in lexer (GH-144788) Guard against NULL pointer arithmetic in `_PyLexer_remember_fstring_buffers` and `_PyLexer_restore_fstring_buffers`. When `start` or `multi_line_start` are NULL (uninitialized in tok_mode_stack[0]), performing `NULL - tok->buf` is undefined behavior. Add explicit NULL checks to store -1 as sentinel and restore NULL accordingly. Add test_lexer_buffer_realloc_with_null_start to test_repl.py that exercises the code path where the lexer buffer is reallocated while tok_mode_stack[0] has NULL start/multi_line_start pointers. This triggers _PyLexer_remember_fstring_buffers and verifies the NULL checks prevent undefined behavior. (cherry picked from commit e6110efd03259acd1895cff63fbfa115ac5f16dc) Co-authored-by: Ramin Farajpour Cami <ramin.blackhat@gmail.com>
M
Miss Islington (bot) committed
70ecd561135b31a8ece6f9d459b91734ab51db25
Parent: 5b0c1f7
Committed by GitHub <noreply@github.com>
on 2/15/2026, 3:10:15 PM