1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-03-09 15:50:02 +00:00

vi mode: Disable = and tab at the start of the line (#521)

In vi mode, due to a buffer overflow, <ESC>= as the first input
either produces an invalid completion or crashes the shell. The
easiest fix is to disable <ESC>= as well as <TAB> completion at
the start of the command line, as is already done in emacs mode.

src/cmd/ksh93/edit/vi.c:
- getline(): If cur_virt <= 0 in case '\t', beep and refuse tab
  completion.
- textmod(): Move an 'if' statement checking for INVALID cur_virt
  to include = mode along with * and \ mode.

Co-authored-by: Martijn Dekker <martijn@inlv.org>
Resolves: https://github.com/ksh93/ksh/issues/520
This commit is contained in:
pghvlaans 2022-08-24 11:49:03 +09:00 committed by Martijn Dekker
parent d3a9da12df
commit b6c8bb7b3c
4 changed files with 17 additions and 7 deletions

6
NEWS
View file

@ -2,6 +2,12 @@ This documents significant changes in the 1.0 branch of ksh 93u+m.
For full details, see the git log at: https://github.com/ksh93/ksh/tree/1.0
Uppercase BUG_* IDs are shell bug IDs as used by the Modernish shell library.
2022-08-24:
- Fixed a bug that caused ksh in the vi editor mode to crash or produce
invalid completions if ESC = was used at the beginning of a line. Both
tab and = completions are now disabled at the start of the command line.
2022-08-20:
- Fixed a bug in command line options processing that caused short-form