Hi Thomas,

I was surprised myself that something so basic could go wrong. Here is what 
locale has to say:

~% locale
LANG=en
LANGUAGE=en_US
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=C

I have a Swedish keyboard and it happens by accident, that I hit one of the 
non-ascii keys, thus producing the crash. Probably the same with a German 
keyboard and all the umlauts ;-) I do not really need to enter these characters 
on the command line. Thus, I can work around it by modifiying lines 698-699 in 
ed.inputl.c like this (forcing type conversion to unsigned char):

698         if ((unsigned char )*ch < NT_NUM_KEYS)
699             cmd = CurrentKeyMap[(unsigned char )*ch];

With this, the problem goes completely away (no complaint in valgrind any 
longer), clearly indicating that "ch" in the executable from the Ubuntu package 
was of type "signed char *". I run Ubuntu with:

4.13.0-31-generic #34-Ubuntu SMP Fri Jan 19 16:34:46 UTC 2018 x86_64 x86_64 
x86_64 GNU/Linux

Hope this helps. Cheers,

Jens

Reply via email to