| # cat is an external program, variable should not leak out of it. |
| # this currently fails with CONFIG_FEATURE_SH_NOFORK=y |
| VAR='' |
| VAR=val0 cat /dev/null |
| echo "should be empty: '$VAR'" |
| |
| # true is a regular builtin, variable should not leak out of it. |
| VAR='' |
| VAR=val1 true |
| echo "should be empty: '$VAR'" |
| |
| # ash follows the "special builtin leaks variables" rule here: |
| # exec is a special builtin. (bash does not do it) |
| VAR='' |
| VAR=val2 exec 2>&1 |
| echo "should be not empty: '$VAR'" |
| |
| # ash follows the "function call is a special builtin" rule here |
| # (bash does not do it) |
| f() { true; } |
| VAR='' |
| VAR=val3 f |
| echo "should be not empty: '$VAR'" |