<feed xmlns='http://www.w3.org/2005/Atom'>
<title>busybox-w32/shell/ash.c, branch zstd</title>
<subtitle>A mirror of https://github.com/rmyorston/busybox-w32.git
</subtitle>
<id>https://git.lua4.win/busybox-w32/atom?h=zstd</id>
<link rel='self' href='https://git.lua4.win/busybox-w32/atom?h=zstd'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/'/>
<updated>2026-03-11T10:14:49+00:00</updated>
<entry>
<title>Merge branch 'busybox' into merge</title>
<updated>2026-03-11T10:14:49+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-03-11T10:14:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=ede205bd07573813337b5706acb0cae3b127a36f'/>
<id>urn:sha1:ede205bd07573813337b5706acb0cae3b127a36f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ash: fix here strings causing segfault in function invocation</title>
<updated>2026-03-09T14:23:59+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-03-04T15:04:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=e527bd22dbda697d09d4dff8786c6290d79d577a'/>
<id>urn:sha1:e527bd22dbda697d09d4dff8786c6290d79d577a</id>
<content type='text'>
The size of the NFROMSTR struct wasn't initialised in the nodesize
array, so we got:

   $ ./busybox sh
   $ f() { cat &lt;&lt;&lt; hello; }
   $ f
   Segmentation fault         (core dumped) ./busybox sh

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 here strings causing segfault in subshells</title>
<updated>2026-03-04T14:27:16+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-03-04T14:27:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=b8b19b18ad8f189e1a6f52043dabe8d38d19b883'/>
<id>urn:sha1:b8b19b18ad8f189e1a6f52043dabe8d38d19b883</id>
<content type='text'>
A here string in a subshell or function invocation caused a SEGV.
This was due to an upstream bug:  the size of the NFROMSTR struct
wasn't initialised in the nodesize array.

(GitHub issue #567)
</content>
</entry>
<entry>
<title>ash: fix help builtin and tab completion of builtins</title>
<updated>2026-02-28T10:25:05+00:00</updated>
<author>
<name>Ron Yorston via busybox</name>
<email>busybox@busybox.net</email>
</author>
<published>2026-02-08T10:16:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=b59b00323181d5d450a92959b9bbfe3585c6786b'/>
<id>urn:sha1:b59b00323181d5d450a92959b9bbfe3585c6786b</id>
<content type='text'>
Commit 56143ea63 (ash: code shrink: eliminate pstrcmp1()) changed
the layout of struct builtincmd so the name member points to the
start of the name, not the flag in the first element of the string.
This broke the help builtin and tab completion of builtins.

Remove the unnecessary '+ 1' in ash_command_name() and helpcmd().

ash_command_name                                      92      91      -1
helpcmd                                              106     102      -4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-5)               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: allow execution of busybox-w32 binary without extension</title>
<updated>2026-02-25T09:33:36+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-02-25T09:33:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=35e590816a844e3ccc707c841b756e83987d09eb'/>
<id>urn:sha1:35e590816a844e3ccc707c841b756e83987d09eb</id>
<content type='text'>
If the busybox-w32 binary didn't have an extension the shell was
unable to spawn itself:

   $ ls -l busybox
   -rwxrwxr-x    1 rmy      rmy         661006 Feb 25 09:37 busybox
   $ ./busybox sh
   $ ls
   sh: unable to spawn shell

This happened because the shell used spawnve() from the C runtime
to execute itself.  Microsoft insists on trying to add an extension
to the name of the binary unless it has an explicit '.' as its
last character.

Use the internal spawnveq() instead, as it handles various quirks
like the above.

Adds 16-32 bytes.

(GitHub issue #566)
</content>
</entry>
<entry>
<title>*: placate warnings where strchr/strstr returns constant pointer</title>
<updated>2026-02-15T14:15:30+00:00</updated>
<author>
<name>Denys Vlasenko</name>
<email>vda.linux@googlemail.com</email>
</author>
<published>2026-02-15T13:41:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=b668e52c906b664b353d5a99cfa3ff36f73b341d'/>
<id>urn:sha1:b668e52c906b664b353d5a99cfa3ff36f73b341d</id>
<content type='text'>
Newer glibc is now smarter and can propagate const-ness from those!

function                                             old     new   delta
readtoken1                                          3111    3108      -3

Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>ash: fix execution of applets via Unix-style path</title>
<updated>2026-02-14T21:09:47+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-02-14T21:09:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=686a0803f9747206eef5337100c5338431891e45'/>
<id>urn:sha1:686a0803f9747206eef5337100c5338431891e45</id>
<content type='text'>
Merging of upstream changes to ash failed to ensure that applets
could be executed using a Unix-style path.

Move the necessary code from shellexec() to tryexec().

(GitHub issue #565)
</content>
</entry>
<entry>
<title>Merge branch 'busybox' into merge</title>
<updated>2026-02-12T12:58:38+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-02-12T12:50:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=de7b34e8c779d8baca5abba1394284e0b6e87dc6'/>
<id>urn:sha1:de7b34e8c779d8baca5abba1394284e0b6e87dc6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ash: fix help builtin and tab completion of builtins</title>
<updated>2026-02-09T10:53:01+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-02-09T10:53:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=610e1f9ff848d6b07540dc86d12708991786a7d1'/>
<id>urn:sha1:610e1f9ff848d6b07540dc86d12708991786a7d1</id>
<content type='text'>
Commit 56143ea63 (ash: code shrink: eliminate pstrcmp1()) changed
the layout of struct builtincmd so the name member points to the
start of the name, not the flag in the first element of the string.
This broke the help builtin and tab completion of builtins.

Remove the unnecessary '+ 1' in ash_command_name() and helpcmd().

This patch has been submitted upstream.
</content>
</entry>
<entry>
<title>Merge branch 'busybox' into merge</title>
<updated>2026-02-09T10:52:28+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-02-09T10:52:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=e23652908aa6419566a4f8c783e8e5595d4d91d4'/>
<id>urn:sha1:e23652908aa6419566a4f8c783e8e5595d4d91d4</id>
<content type='text'>
</content>
</entry>
</feed>
