On Tue, Aug 19, 2014 at 02:44:29PM +0200, Werner Fink wrote:
> On Mon, Aug 18, 2014 at 09:34:56PM -0400, David Korn wrote:
> > Try this patch. It should ignore that cat is a built-in of /bin/cat and
> > runs /bin/cat instead when it is the last command of ``. Let me know if
> > this fixes the problem.
> >
> > --- old/sh/xec.c Mon Aug 18 17:53:43 2014
> > +++ new/sh/xec.c Mon Aug 18 18:23:58 2014
> > @@ -1253,9 +1253,14 @@
> > }
> > if(np && pipejob==2)
> > {
> > - job_unlock();
> > - nlock--;
> > - pipejob = 1;
> > + if(shp->comsub==1 && np &&
> > is_abuiltin(np) && *np->nvname=='/')
> > + np = 0;
> > + else
> > + {
> > + job_unlock();
> > + nlock--;
> > + pipejob = 1;
> > + }
> > }
> > /* check for builtins */
> > if(np && is_abuiltin(np))
>
> This change works for the cat builtin but the test suite now shows:
>
> [ 907s] test subshell begins at 2014-08-19+12:40:15
> [ 922s] subshell.sh[682]: non-existant last command in pipeline
> causes `` to fail
> [ 922s] test subshell failed at 2014-08-19+12:40:30 with exit code 1 [ 70
> tests 1 error ]
> [ 922s] test subshell(C.UTF-8) begins at 2014-08-19+12:40:30
> [ 936s] subshell.sh[682]: non-existant last command in pipeline
> causes `` to fail
> [ 936s] test subshell(C.UTF-8) failed at 2014-08-19+12:40:44 with exit code
> 1 [ 70 tests 1 error ]
> [ 936s] test subshell(shcomp) begins at 2014-08-19+12:40:44
> [ 951s] shcomp-subshell.ksh[682]: non-existant last command in
> pipeline causes `` to fail
> [ 951s] test subshell(shcomp) failed at 2014-08-19+12:40:59 with exit code 1
> [ 70 tests 1 error ]Just seen this during debugging: BUILD/ksh93> ./arch/linux.i386-64/src/cmd/ksh93/ksh -c 'while((SECONDS<3)); do test -z `/bin/false | /bin/false | /bin/doesnotexist`;done;:' 2> /dev/null Segmentation fault (core dumped) BUILD/ksh93> gdb ./arch/linux.i386-64/src/cmd/ksh93/ksh core GNU gdb (GDB) SUSE (7.5.1-0.7.29) Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> [...] Core was generated by `./arch/linux.i386-64/src/cmd/ksh93/ksh -c while((SECONDS<3)); do test -z `/bin/'. Program terminated with signal 11, Segmentation fault. #0 bestlistreclaim (listp=<optimized out>, pack=<optimized out>, vm=<optimized out>) at /usr/src/packages/BUILD/ksh93/src/lib/libast/vmalloc/vmbest.c:471 471 SIZE(fp) |= MARK; (gdb) print fp $1 = (Block_t *) 0x400000 Werner -- "Having a smoking section in a restaurant is like having a peeing section in a swimming pool." -- Edward Burr
pgpJilMAYtLRi.pgp
Description: PGP signature
_______________________________________________ ast-developers mailing list [email protected] http://lists.research.att.com/mailman/listinfo/ast-developers
