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

Graeme Ambler Graeme.Ambler at bristol.ac.uk
Sat Jun 28 00:15:44 MEST 2003


I've just rebuilt an rpm from the RedHat SRPM and the patches from ftp.gnu.org 
and R no longer crashes in any of the cases I have previously described.  I 
can let anyone who wants have a copy of the modified rpms for both RH8 and 
RH9.  The patch numbers are incremented one from the originals, so they 
should update cleanly on any system.

I guess you can probably close this bug now.  It's a bit annoying that RH 
didn't apply the patches themselves for RH9, since the relevant one came out 
about 6 months before RH9 was released!

Graeme.

On Friday 27 Jun 2003 19:06, John W. Eaton wrote:
> 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



More information about the R-devel mailing list