From https://ftp.gnu.org/gnu/bash/bash-4.4-patches/bash44-022 Signed-off-by: Peter Korsgaard BASH PATCH REPORT ================= Bash-Release: 4.4 Patch-ID: bash44-022 Bug-Reported-by: Nuzhna Pomoshch Bug-Reference-ID: <1317167476.1492079.1495999776464@mail.yahoo.com> Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2017-05/msg00005.html Bug-Description: There are cases where a failing readline command (e.g., delete-char at the end of a line) can cause a multi-character key sequence to `back up' and attempt to re-read some of the characters in the sequence. Patch (apply with `patch -p0'): *** bash-4.4-patched/lib/readline/readline.c 2016-04-20 15:53:52.000000000 -0400 --- b/lib/readline/readline.c 2018-05-26 17:19:00.000000000 -0400 *************** *** 1058,1062 **** r = _rl_dispatch (ANYOTHERKEY, m); } ! else if (r && map[ANYOTHERKEY].function) { /* We didn't match (r is probably -1), so return something to --- b/1056,1060 ---- r = _rl_dispatch (ANYOTHERKEY, m); } ! else if (r < 0 && map[ANYOTHERKEY].function) { /* We didn't match (r is probably -1), so return something to *************** *** 1070,1074 **** return -2; } ! else if (r && got_subseq) { /* OK, back up the chain. */ --- b/1068,1072 ---- return -2; } ! else if (r < 0 && got_subseq) /* XXX */ { /* OK, back up the chain. */ *** bash-4.4/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 --- b/patchlevel.h 2016-10-01 11:01:28.000000000 -0400 *************** *** 26,30 **** looks for to find the patch level (for the sccs version string). */ ! #define PATCHLEVEL 21 #endif /* _PATCHLEVEL_H_ */ --- b/26,30 ---- looks for to find the patch level (for the sccs version string). */ ! #define PATCHLEVEL 22 #endif /* _PATCHLEVEL_H_ */