Skip to content

Comments

Fix mouse selection can crash kmscon#204

Merged
kdj0c merged 1 commit intokmscon:mainfrom
kdj0c:fix_crash_selection
Jan 9, 2026
Merged

Fix mouse selection can crash kmscon#204
kdj0c merged 1 commit intokmscon:mainfrom
kdj0c:fix_crash_selection

Conversation

@kdj0c
Copy link
Contributor

@kdj0c kdj0c commented Jan 8, 2026

Sometime kmscon crashes with the following stack trace:

Module libxkbcommon.so.0 from rpm libxkbcommon-1.8.1-1.fc42.x86_64
Stack trace of thread 6732:
#0  0x00007f8b79de9974 calc_line_len (libtsm.so.4 + 0x3974)
#1  0x00007f8b79dea153 copy_lines (libtsm.so.4 + 0x4153)
#2  0x000000000040cd7b copy_selection (/usr/local/libexec/kmscon/kmscon + 0xcd7b)
#3  0x000000000041d3bd shl_hook_call (/usr/local/libexec/kmscon/kmscon + 0x1d3bd)
#4  0x000000000041d9f6 pointer_dev_button (/usr/local/libexec/kmscon/kmscon + 0x1d9f6)
#5  0x000000000041b18d notify_event (/usr/local/libexec/kmscon/kmscon + 0x1b18d)
#6  0x0000000000411dd7 ev_eloop_dispatch (/usr/local/libexec/kmscon/kmscon + 0x11dd7)
#7  0x00000000004124e2 ev_eloop_run (/usr/local/libexec/kmscon/kmscon + 0x124e2)
#8  0x0000000000401688 main (/usr/local/libexec/kmscon/kmscon + 0x1688)
#9  0x00007f8b79a76575 __libc_start_call_main (libc.so.6 + 0x3575)
#10 0x00007f8b79a76628 __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x3628)
#11 0x0000000000401a25 _start (/usr/local/libexec/kmscon/kmscon + 0x1a25)

The root cause is a off by one error in coord_to_cell(), so the selected cell can be outside the terminal.

Sometime kmscon crashes with the following stack trace:

    Module libxkbcommon.so.0 from rpm libxkbcommon-1.8.1-1.fc42.x86_64
    Stack trace of thread 6732:
    #0  0x00007f8b79de9974 calc_line_len (libtsm.so.4 + 0x3974)
    Aetf#1  0x00007f8b79dea153 copy_lines (libtsm.so.4 + 0x4153)
    Aetf#2  0x000000000040cd7b copy_selection (/usr/local/libexec/kmscon/kmscon + 0xcd7b)
    Aetf#3  0x000000000041d3bd shl_hook_call (/usr/local/libexec/kmscon/kmscon + 0x1d3bd)
    Aetf#4  0x000000000041d9f6 pointer_dev_button (/usr/local/libexec/kmscon/kmscon + 0x1d9f6)
    Aetf#5  0x000000000041b18d notify_event (/usr/local/libexec/kmscon/kmscon + 0x1b18d)
    Aetf#6  0x0000000000411dd7 ev_eloop_dispatch (/usr/local/libexec/kmscon/kmscon + 0x11dd7)
    Aetf#7  0x00000000004124e2 ev_eloop_run (/usr/local/libexec/kmscon/kmscon + 0x124e2)
    Aetf#8  0x0000000000401688 main (/usr/local/libexec/kmscon/kmscon + 0x1688)
    Aetf#9  0x00007f8b79a76575 __libc_start_call_main (libc.so.6 + 0x3575)
    Aetf#10 0x00007f8b79a76628 __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x3628)
    Aetf#11 0x0000000000401a25 _start (/usr/local/libexec/kmscon/kmscon + 0x1a25)

The root cause is a off by one error in coord_to_cell(), so the
selected cell can be outside the terminal.

Signed-off-by: Jocelyn Falempe <[email protected]>
@kdj0c kdj0c merged commit d45bc8b into kmscon:main Jan 9, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant