From jwe at bevo.che.wisc.edu  Fri Jun 27 14:06:00 2003
From: jwe at bevo.che.wisc.edu (John W. Eaton)
Date: Fri Jun 27 20:06:20 2003
Subject: [Rd] Update on "Shift-Return causes segfault (PR#3293)"
In-Reply-To: <16124.32939.937141.70358@devzero.bogus.domain>
References: <200306271611.h5RGB4JH010679@pubhealth.ku.dk>
	<x27k77jw2p.fsf@biostat.ku.dk>
	<16124.32939.937141.70358@devzero.bogus.domain>
Message-ID: <16124.34696.227738.342844@devzero.bogus.domain>

On 27-Jun-2003, I wrote:

| Making the following change in readline.c seems to avoid the infinite
| loop, but I don't know whether it is the correct fix.

It isn't.  :-/  There are 5 patches on ftp.gnu.org in the
/pub/gnu/readline/readline-4.3-patches.  The first one covers this 
problem:

Bug-Description:

Pressing certain key sequences causes an infinite loop in _rl_dispatch_subseq
with the `key' argument set to 256.  This eventually causes bash to exceed
the stack size limit and crash with a segmentation violation.

Patch:

*** ../readline-4.3/bind.c	Thu Jan 24 11:15:52 2002
--- bind.c	Wed Jul 31 09:11:18 2002
***************
*** 312,316 ****
  	     and the function bound  to `a' to be executed when the user
  	     types `abx', leaving `bx' in the input queue. */
! 	  if (k.function /* && k.type == ISFUNC */)
  	    {
  	      map[ANYOTHERKEY] = k;
--- 312,316 ----
  	     and the function bound  to `a' to be executed when the user
  	     types `abx', leaving `bx' in the input queue. */
! 	  if (k.function && ((k.type == ISFUNC && k.function != rl_do_lowercase_version) || k.type == ISMACR))
  	    {
  	      map[ANYOTHERKEY] = k;

jwe


[Rd] Update on "Shift-Return causes segfault (PR#3293)"
John W. Eaton