<feed xmlns='http://www.w3.org/2005/Atom'>
<title>busybox-w32/shell/ash_test, branch su_cmd2</title>
<subtitle>A mirror of https://github.com/rmyorston/busybox-w32.git
</subtitle>
<id>https://git.lua4.win/busybox-w32/atom?h=su_cmd2</id>
<link rel='self' href='https://git.lua4.win/busybox-w32/atom?h=su_cmd2'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/'/>
<updated>2023-03-31T12:22:56+00:00</updated>
<entry>
<title>ash: improve trap and jobs builtins in child shells</title>
<updated>2023-03-31T12:22:56+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2023-03-30T10:05:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=098cd7ece44bf7ab7ae38dc00dd574af79a9bad8'/>
<id>urn:sha1:098cd7ece44bf7ab7ae38dc00dd574af79a9bad8</id>
<content type='text'>
The trap and jobs builtins can be used to report information about
traps and jobs.  This works when they're called from the current
shell but in a child shell the required information is usually
cleared.  Special hacks allow:

- trap to work with command substitution;
- jobs to work with command substitution or in a pipeline.

Neither works with process substitution.

- Relax the test for the trap hack so it also supports pipelines.

- Pass the command to be evaluated to forkshell() in evalbackcmd()
  so trap and jobs both work with process substitution.

function                                             old     new   delta
forkchild                                            629     640     +11
argstr                                              1502    1496      -6
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 11/-6)               Total: 5 bytes

Signed-off-by: Ron Yorston &lt;rmy@pobox.com&gt;
Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>ash: fix ifs cleanup on error paths</title>
<updated>2022-08-02T09:18:11+00:00</updated>
<author>
<name>Denys Vlasenko</name>
<email>vda.linux@googlemail.com</email>
</author>
<published>2022-08-02T09:13:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=1c5455284234e894dfb6086bf7f3e9a6d5d9611f'/>
<id>urn:sha1:1c5455284234e894dfb6086bf7f3e9a6d5d9611f</id>
<content type='text'>
Patch by Alex Gorinson &lt;algore3698@gmail.com&gt;

function                                             old     new   delta
evalvar                                              477     495     +18
varvalue                                             603     618     +15
subevalvar                                          1557    1572     +15
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 48/0)               Total: 48 bytes

Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>ash: don't read past end of var in subvareval for bash substitutions</title>
<updated>2022-03-01T07:47:43+00:00</updated>
<author>
<name>Sören Tempel</name>
<email>soeren@soeren-tempel.net</email>
</author>
<published>2022-02-28T07:36:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=fa52ac9781f479de8ab4d8526276244c0a0471f4'/>
<id>urn:sha1:fa52ac9781f479de8ab4d8526276244c0a0471f4</id>
<content type='text'>
Without this patch, BusyBox handles bash pattern substitutions without
a terminating '/' character incorrectly.

Consider the following shell script:

	_bootstrapver=5.0.211-r0
	_referencesdir="/usr/${_bootstrapver/-*}/Sources"
	echo $_referencesdir

This should output `/usr/5.0.211/Sources`. However, without this patch
it instead outputs `/usr/5.0.211Sources`. This is due to the fact that
BusyBox expects the bash pattern substitutions to always be terminated
with a '/' (at least in this part of subvareval) and thus reads passed
the substitution itself and consumes the '/' character which is part of
the literal string. If there is no '/' after the substitution then
BusyBox might perform an out-of-bounds read under certain circumstances.

When replacing the bash pattern substitution with `${_bootstrapver/-*/}`,
or with this patch applied, ash outputs the correct value.

Signed-off-by: Sören Tempel &lt;soeren@soeren-tempel.net&gt;
Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>shell: fix script's comm field if ENABLE_FEATURE_PREFER_APPLETS=y</title>
<updated>2021-10-11T16:44:00+00:00</updated>
<author>
<name>Denys Vlasenko</name>
<email>vda.linux@googlemail.com</email>
</author>
<published>2021-10-11T16:39:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=5acf5e1f870fb5382556d4b434158f7d497893ca'/>
<id>urn:sha1:5acf5e1f870fb5382556d4b434158f7d497893ca</id>
<content type='text'>
function                                             old     new   delta
re_execed_comm                                         -      46     +46
main                                                  72      86     +14
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/0 up/down: 60/0)               Total: 60 bytes

Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>shell: fix parsing of $(( (v)++ + NUM ))</title>
<updated>2021-09-26T11:29:25+00:00</updated>
<author>
<name>Denys Vlasenko</name>
<email>vda.linux@googlemail.com</email>
</author>
<published>2021-09-26T11:25:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=1be73dd9ad6d2cf6747934374c1d58bd9bc211b4'/>
<id>urn:sha1:1be73dd9ad6d2cf6747934374c1d58bd9bc211b4</id>
<content type='text'>
function                                             old     new   delta
evaluate_string                                      988    1011     +23

Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>shell: enable more tests which are passing now</title>
<updated>2021-09-25T20:35:17+00:00</updated>
<author>
<name>Denys Vlasenko</name>
<email>vda.linux@googlemail.com</email>
</author>
<published>2021-09-25T20:25:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=62e433131b289ea90e465cf0c5f78c8c226fc692'/>
<id>urn:sha1:62e433131b289ea90e465cf0c5f78c8c226fc692</id>
<content type='text'>
Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>shell: fix arithmentic evaluation of "++7" and such (it is + + 7, i.e. 7)</title>
<updated>2021-09-25T20:04:45+00:00</updated>
<author>
<name>Denys Vlasenko</name>
<email>vda.linux@googlemail.com</email>
</author>
<published>2021-09-25T20:04:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=d84a604830a7ee3f8fb5f3908ae0d54513393a20'/>
<id>urn:sha1:d84a604830a7ee3f8fb5f3908ae0d54513393a20</id>
<content type='text'>
function                                             old     new   delta
evaluate_string                                      945     988     +43

Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>ash: parser: Fix alias expansion after heredoc or newlines</title>
<updated>2021-09-07T23:43:12+00:00</updated>
<author>
<name>Denys Vlasenko</name>
<email>vda.linux@googlemail.com</email>
</author>
<published>2021-09-07T23:43:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=8c68ae8416c8b54222eb3cd1d4908a570147e134'/>
<id>urn:sha1:8c68ae8416c8b54222eb3cd1d4908a570147e134</id>
<content type='text'>
Upstream commit:

    Date: Wed, 29 Apr 2020 00:19:59 +1000
    parser: Fix alias expansion after heredoc or newlines

    This script should print OK:

        alias a="case x in " b=x
        a
        b) echo BAD;; esac

        alias BEGIN={ END=}
        BEGIN
    	cat &lt;&lt;- EOF &gt; /dev/null
    		$(:)
    	EOF
        END
        : &lt;&lt;- EOF &amp;&amp;
    		$(:)
        EOF
        BEGIN
    	echo OK
        END

    However, because the value of checkkwd is either zeroed when it
    shouldn't, or isn't zeroed when it should, dash currently gets
    it wrong in every case.

    This patch fixes it by saving checkkwd and zeroing it where needed.

function                                             old     new   delta
readtoken                                            157     176     +19

Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>shell/ash_test/run-all: unset locale/language variables</title>
<updated>2021-09-07T16:24:08+00:00</updated>
<author>
<name>Denys Vlasenko</name>
<email>vda.linux@googlemail.com</email>
</author>
<published>2021-09-07T16:24:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=bcff3a7b5ab3302ea03a471bae195f8454008a20'/>
<id>urn:sha1:bcff3a7b5ab3302ea03a471bae195f8454008a20</id>
<content type='text'>
Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>ash: LINENO starts from 0 in -c SCRIPT mode</title>
<updated>2021-09-07T16:16:45+00:00</updated>
<author>
<name>Denys Vlasenko</name>
<email>vda.linux@googlemail.com</email>
</author>
<published>2021-09-07T16:16:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=64aa86b720641cb50be9636e6c20d4dbbea6fed0'/>
<id>urn:sha1:64aa86b720641cb50be9636e6c20d4dbbea6fed0</id>
<content type='text'>
The var_LINENO3.tests fails for hush: it does start from 0, but does not increment.

Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
</feed>
