Subject: bug#34616: neovim segfaults

From: Ricardo Wurmus <[email-masked]>
Date: Fri, 01 Mar 2019 17:31:12 +0100

Efraim Flashner <[email-masked]> writes:

>> > /gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/lib/libc.so.6
>> > #1  0x0000000000505b31 in strequal ()
>> > #2  0x000000000045681e in tui_tk_ti_getstr ()
>> > #3  0x00007ffff7e649a5 in try_load_terminfo_key () from
>> > /gnu/store/pl7nh8chyp0av6lb7qck5n9mvvaz24z5-libtermkey-0.21.1/lib/libtermkey.so.1
>> > #4  0x00007ffff7e64b59 in load_terminfo () from
>> > /gnu/store/pl7nh8chyp0av6lb7qck5n9mvvaz24z5-libtermkey-0.21.1/lib/libtermkey.so.1
>> > #5  0x00007ffff7e64eda in start_driver () from
>> > /gnu/store/pl7nh8chyp0av6lb7qck5n9mvvaz24z5-libtermkey-0.21.1/lib/libtermkey.so.1
>> > #6  0x00007ffff7e6007e in termkey_start () from
>> > /gnu/store/pl7nh8chyp0av6lb7qck5n9mvvaz24z5-libtermkey-0.21.1/lib/libtermkey.so.1
>>
>> So the problem is in libtermkey.  Can we reproduce this with another
>> package using libtermkey?
>>
>
> The only other package which uses libtermkey is vis, a text editor.

vis does not segfault for me.

I tried running the segfaulting nvim again, but with the TERM variable
unset.  It does not segfault.

    TERM= /gnu/store/d8ibld5vpsgq7is3k3sf5gqj0i7sgmbh-neovim-0.3.4/bin/nvim

Any other value for TERM that I tried leads to a lookup of the terminfo
files provided by the ncurses package and subsequently leads to a
segfault.

I would also like to point out that this does not segfault:

    guix environment --container --ad-hoc neovim -- nvim

Outside of the container ~/.guix-profile/share/terminfo is available,
which resides in my profile because I happen to have rxvt-unicode
installed.  This package provides these files:

    ./share/terminfo/r/rxvt-unicode/rxvt-unicode{,-256color}

The value of TERM in my sessions is “xterm-256color”.

--
Ricardo