Configuration Information [Automatically generated, do not change]: Machine: sparc OS: solaris2.8 Compiler: gcc Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='sparc' -DCONF_OSTYPE='solaris2.8' -DCONF_MACHTYPE='sparc-sun-solaris2.8' -DCONF_VENDOR='sun' -DSHELL -DHAVE_CONFIG_H -I. -I/wamas/tools/haubi/src/toolsbox-4-patches/buildroot/bash/bash-2.05b -I/wamas/tools/haubi/src/toolsbox-4-patches/buildroot/bash/bash-2.05b/include -I/wamas/tools/haubi/src/toolsbox-4-patches/buildroot/bash/bash-2.05b/lib -g -O2 uname output: SunOS sauxch4 5.8 Generic_108528-11 sun4u sparc SUNW,Sun-Fire-280R Machine Type: sparc-sun-solaris2.8
Bash Version: 2.05b Patch Level: 0 Release Status: release Description: When using 'read -u 3' or the like, and the pipe-buf already contains more than one line, the first line is returned, and bytes up to the next multiple of 128 are skipped. This bug quite sure exists in bash-3.0 too. Repeat-By: Send lines to a spawned bash over a pipe with fd!=0 to have more than one line in pipe-buffer when doing the 'read -u'. If you want, you can have a test case with a python program spawning a bash and communicate with it over pipes other than stdin. Fix: diff -ruN bash-2.05b.orig/builtins/read.def bash-2.05b/builtins/read.def --- bash-2.05b.orig/builtins/read.def 2005-03-25 07:53:42.662996304 +0100 +++ bash-2.05b/builtins/read.def 2005-03-25 07:55:02.205903944 +0100 @@ -274,7 +274,7 @@ input_is_tty = isatty (fd); if (input_is_tty == 0) #ifndef __CYGWIN__ - input_is_pipe = (lseek (0, 0L, SEEK_CUR) < 0) && (errno == ESPIPE); + input_is_pipe = (lseek (fd, 0L, SEEK_CUR) < 0) && (errno == ESPIPE); #else input_is_pipe = 1; #endif _______________________________________________ Bug-bash mailing list Bug-bash@gnu.org http://lists.gnu.org/mailman/listinfo/bug-bash