diff options
| author | Herbert Xu <herbert@gondor.apana.org.au> | 2011-03-15 17:41:53 +0800 |
|---|---|---|
| committer | Herbert Xu <herbert@gondor.apana.org.au> | 2011-03-15 17:41:53 +0800 |
| commit | ec2c84d3c4dba4b74440d72bdd1de416a9acd2a9 (patch) | |
| tree | ba0dc60e76629ab37a243b7b57efcb0ed297a6e3 /src/funcs/kill | |
| parent | [DEBUG] Use va_copy when reusing a va_list (diff) | |
| download | dash-ec2c84d3c4dba4b74440d72bdd1de416a9acd2a9.tar.gz dash-ec2c84d3c4dba4b74440d72bdd1de416a9acd2a9.zip | |
[PARSER] Fix clobbering of checkkwd
On Sun, Nov 07, 2010 at 02:21:21AM +0000, Jonathan Nieder wrote:
>
> Just ran into some strange behavior:
>
> $ cat test.sh
> #!/bin/sh
> echo hello >greeting
> cat <<EOF &&
> $(cat greeting)
> EOF
> {
> echo $?
> cat greeting
> } >/dev/null
>
>
> $ sh test.sh
> hello
> test.sh: 7: {: not found
> 127
> hello
> test.sh: 10: Syntax error: "}" unexpected
>
> bash, mksh, pdksh, and ksh93 all print hello as expected. The problem
> is reproducible with all versions of dash in the git repo.
This is caused by the clobbering of checkkwd due to readtoken
recursion while parsing a here document.
This patch fixes it by saving the original value of checkkwd.
Reported-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'src/funcs/kill')
0 files changed, 0 insertions, 0 deletions