From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27091 invoked by alias); 18 Jan 2004 19:50:22 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 26933 invoked from network); 18 Jan 2004 19:50:18 -0000 Received: from unknown (HELO nevyn.them.org) (66.93.172.17) by sources.redhat.com with SMTP; 18 Jan 2004 19:50:18 -0000 Received: from drow by nevyn.them.org with local (Exim 4.30 #1 (Debian)) id 1AiIw5-0001Q5-5a for ; Sun, 18 Jan 2004 14:50:17 -0500 Date: Sun, 18 Jan 2004 19:50:00 -0000 From: Daniel Jacobowitz To: gdb-patches@sources.redhat.com Subject: RFA: Import a readline bugfix Message-ID: <20040118195017.GA5434@nevyn.them.org> Mail-Followup-To: gdb-patches@sources.redhat.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.1i X-SW-Source: 2004-01/txt/msg00480.txt.bz2 I was working on an ornery completion bug this morning and stumbled across: http://ftp.gnu.org/gnu/readline/readline-4.3-patches/readline43-001 This patch fixes an infinite loop in readline on hitting certain keys - on my terminal one of them is shift-delete, which I hit by accident pretty frequently. OK to commit this? -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer READLINE PATCH REPORT ===================== Readline-Release: 4.3 Patch-ID: readline43-001 Bug-Reported-by: Thierry Vignaud Bug-Reference-ID: (bug-readline) Bug-Reference-URL: 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;