mirror of
https://github.com/kovidgoyal/kitty.git
synced 2026-05-13 16:37:27 +00:00
screen_draw_overlay_line accessed self->linebuf->line->cpu_cells without ever calling linebuf_init_line on the shared view. Render paths that initialize a stack-local Line via render_line_for_virtual_y left the view's cpu_cells as NULL (the value set by alloc_line via PyType_GenericAlloc), and the multicell-trim loop then dereferenced NULL + xstart * sizeof(CPUCell), producing a SIGSEGV at a small address (e.g. 0x1e for xstart=2). The crash was reachable any time an IME pre-edit overlay was rendered with the cursor not in column 0 on a screen whose linebuf->line had not been re-pointed by some unrelated prior call. Fix by initializing the view at the overlay row on entry. Add a test_draw_overlay_line method on Screen so the behavior can be exercised directly from a regression test. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| atexit.py | ||
| CascadiaCode-Regular.otf | ||
| check_build.py | ||
| clipboard.py | ||
| command_palette.py | ||
| completion.py | ||
| crypto.py | ||
| datatypes.py | ||
| dnd.py | ||
| file_transmission.py | ||
| FiraCode-Medium.otf | ||
| fonts.py | ||
| glfw.py | ||
| gr.py | ||
| GraphemeBreakTest.json | ||
| graphics.py | ||
| iosevka-regular.ttf | ||
| keys.py | ||
| layout.py | ||
| LiberationMono-Regular.ttf | ||
| main.py | ||
| mouse.py | ||
| multicell.py | ||
| notifications.py | ||
| open_actions.py | ||
| options.py | ||
| panels.py | ||
| parser.py | ||
| screen.py | ||
| search_query_parser.py | ||
| shell_integration.py | ||
| shm.py | ||
| ssh.py | ||
| tui.py | ||
| twemoji_smiley-cff2_colr_1.otf | ||
| utmp.py | ||