From https://ftp.gnu.org/gnu/bash/bash-4.4-patches/bash44-022

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>

			     BASH PATCH REPORT
			     =================

Bash-Release:	4.4
Patch-ID:	bash44-022

Bug-Reported-by:	Nuzhna Pomoshch <nuzhna_pomoshch@yahoo.com>
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_ */
