bash killed by filecompletion feature if filename(s) contain '*' character

2010-01-30 Thread coyote
Configuration Information [Automatically generated, do not change]:
Machine: i686
OS: linux-gnu
Compiler: i686-pc-linux-gnu-gcc
Compilation CFLAGS:  -DPROGRAM='bash' -DCONF_HOSTTYPE='i686' 
-DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='i686-pc-linux-gnu' 
-DCONF_VENDOR='pc' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' -DSHELL 
-DHAVE_CONFIG_H   -I.  -I. -I./include -I./lib  
-DDEFAULT_PATH_VALUE='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
 -DSTANDARD_UTILS_PATH='/bin:/usr/bin:/sbin:/usr/sbin' 
-DSYS_BASHRC='/etc/bash/bashrc' -DSYS_BASH_LOGOUT='/etc/bash/bash_logout' 
-DNON_INTERACTIVE_LOGIN_SHELLS -DSSH_SOURCE_BASHRC -O2 -march=pentium4 -pipe 
-fomit-frame-pointer
uname output: Linux coyote 2.6.31-gentoo-r6 #1 SMP Fri Nov 27 20:29:02 CET 2009 
i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux
Machine Type: i686-pc-linux-gnu

Bash Version: 4.0
Patch Level: 35
Release Status: release

Description:
bash died while word completion if filename contains a '*' character

Repeat-By:
touch file\*1
touch file\*2
chmod +x file*
./file[tab][tab]





Re: bash killed by filecompletion feature if filename(s) contain '*' character

2010-01-30 Thread Chris F.A. Johnson
On Sat, 30 Jan 2010, coy...@wariat.org.pl wrote:

 Configuration Information [Automatically generated, do not change]:
 Machine: i686
 OS: linux-gnu
 Compiler: i686-pc-linux-gnu-gcc
 Compilation CFLAGS:  -DPROGRAM='bash' -DCONF_HOSTTYPE='i686' 
 -DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='i686-pc-linux-gnu' 
 -DCONF_VENDOR='pc' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' -DSHELL 
 -DHAVE_CONFIG_H   -I.  -I. -I./include -I./lib  
 -DDEFAULT_PATH_VALUE='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
  -DSTANDARD_UTILS_PATH='/bin:/usr/bin:/sbin:/usr/sbin' 
 -DSYS_BASHRC='/etc/bash/bashrc' -DSYS_BASH_LOGOUT='/etc/bash/bash_logout' 
 -DNON_INTERACTIVE_LOGIN_SHELLS -DSSH_SOURCE_BASHRC -O2 -march=pentium4 -pipe 
 -fomit-frame-pointer
 uname output: Linux coyote 2.6.31-gentoo-r6 #1 SMP Fri Nov 27 20:29:02 CET 
 2009 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux
 Machine Type: i686-pc-linux-gnu
 
 Bash Version: 4.0
 Patch Level: 35
 Release Status: release
 
 Description:
   bash died while word completion if filename contains a '*' character
 
 Repeat-By:
 touch file\*1
 touch file\*2
 chmod +x file*
 ./file[tab][tab]

No problem here in 3.2, 4.0 or 4.1

-- 
   Chris F.A. Johnson  http://cfajohnson.com
   ===
   Author:
   Shell Scripting Recipes: A Problem-Solution Approach (2005, Apress)
   Pro Bash Programming: Scripting the GNU/Linux Shell (2009, Apress)




Re: bash killed by filecompletion feature if filename(s) contain '*' character

2010-01-30 Thread Chet Ramey
On 1/30/10 4:17 PM, coy...@wariat.org.pl wrote:

 Bash Version: 4.0
 Patch Level: 35
 Release Status: release
 
 Description:
   bash died while word completion if filename contains a '*' character
 
 Repeat-By:
 touch file\*1
 touch file\*2
 chmod +x file*
 ./file[tab][tab]

The problem is attempting to recompute already-computed information.
Try the attached patch:

Chet
-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRUc...@case.eduhttp://cnswww.cns.cwru.edu/~chet/
*** ../bash-4.1-patched/bashline.c  2009-10-24 14:10:19.0 -0400
--- bashline.c  2010-01-30 21:53:49.0 -0500
***
*** 1681,1685 
   characters in the common prefix are bad) will ever be returned on
   regular completion. */
!   if (glob_pattern_p (hint))
  {
if (state == 0)
--- 1681,1685 
   characters in the common prefix are bad) will ever be returned on
   regular completion. */
!   if (globpat)
  {
if (state == 0)