<feed xmlns='http://www.w3.org/2005/Atom'>
<title>busybox-w32/shell, branch mount_point</title>
<subtitle>A mirror of https://github.com/rmyorston/busybox-w32.git
</subtitle>
<id>https://git.lua4.win/busybox-w32/atom?h=mount_point</id>
<link rel='self' href='https://git.lua4.win/busybox-w32/atom?h=mount_point'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/'/>
<updated>2026-06-15T11:42:36+00:00</updated>
<entry>
<title>ash: scan drives directly for 'pwd -a'</title>
<updated>2026-06-15T11:42:36+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-06-15T10:44:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=c5ff19688135ff077190a46de17f6cd7c005d1fc'/>
<id>urn:sha1:c5ff19688135ff077190a46de17f6cd7c005d1fc</id>
<content type='text'>
The shell builtin 'pwd' takes a Windows-specific '-a' option to
display the current directory on each drive.

Use Windows APIs directly to scan for valid drives instead of
'getmntent()'.  Future changes will result in 'getmntent()'
returning mounted volumes as well as drives.

Signed-off-by: Ron Yorston &lt;rmy@pobox.com&gt;
</content>
</entry>
<entry>
<title>ash: don't treat process substitutions as background jobs</title>
<updated>2026-05-31T14:10:05+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-05-31T14:10:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=c2c2944a9e93fe549d4c5c873bc93de4a486e3e1'/>
<id>urn:sha1:c2c2944a9e93fe549d4c5c873bc93de4a486e3e1</id>
<content type='text'>
Commit bda604a70 (ash: prevent leakage of process handles) added
job tracking for process substitutions.  This had the unwanted
side-effect that if the user tried to exit from the shell after
a command involving process substitution the shell reported that
background jobs were present and refused to exit.

Use the flag introduced in commit e6c716317 (ash: don't report
completion of process substitution) to avoid this.

Adds 16 bytes.

(GitHub issue #587)

Signed-off-by: Ron Yorston &lt;rmy@pobox.com&gt;
</content>
</entry>
<entry>
<title>ash: read built-in should respect stty -echo</title>
<updated>2026-05-24T18:06:25+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-05-24T14:56:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=0ab4bc6ce5f6480b03093866b04c17e5d13ef046'/>
<id>urn:sha1:0ab4bc6ce5f6480b03093866b04c17e5d13ef046</id>
<content type='text'>
If echo has been disabled by the command 'stty -echo' the shell
'read' built-in should match its behaviour on Linux and not echo
keyboard input.

Adds 32-48 bytes.

(GitHub issue #594)

Signed-off-by: Ron Yorston &lt;rmy@pobox.com&gt;
</content>
</entry>
<entry>
<title>ash: don't report completion of process substitution</title>
<updated>2026-05-17T10:18:32+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-05-17T10:11:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=e6c716317e760d2441d2cfeba3cf5a6b5ee0415d'/>
<id>urn:sha1:e6c716317e760d2441d2cfeba3cf5a6b5ee0415d</id>
<content type='text'>
Commit bda604a70 (ash: prevent leakage of process handles) added
job tracking for process substitutions.  This had the unwanted
side-effect that the completion of such processes was then
reported in interactive shells.

Set a flag in such jobs so their completion isn't reported.

Adds 32 bytes.

(GitHub issue #587)
</content>
</entry>
<entry>
<title>ash: prevent leakage of process handles</title>
<updated>2026-05-13T11:32:26+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-05-13T11:32:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=bda604a70761e7791e5bfd00337bfc6f9e6ae640'/>
<id>urn:sha1:bda604a70761e7791e5bfd00337bfc6f9e6ae640</id>
<content type='text'>
When the shell invoked process substitution it retained a process
handle to the child.  These handles could accumulate without limit.

The shell in upstream BusyBox doesn't bother to create a job
structure for process substitutions or here documents.  This isn't
appropriate on Windows, where we need to track the child process
handles.  Create job structures as required.

Saves 32-48 bytes.

(GitHub issue #587)
</content>
</entry>
<entry>
<title>ash: further fixes to merge of upstream changes</title>
<updated>2026-05-06T12:57:04+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-05-06T12:57:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=169694ebdba292f6533f78aeea678bfbb907396c'/>
<id>urn:sha1:169694ebdba292f6533f78aeea678bfbb907396c</id>
<content type='text'>
Commits e23652908 and 686a0803f (ash: fix execution of applets via
Unix-style path) were necessary following a major revision of the
shell upstream.

Another problem was found:

   $ sh
   $ PATH="/usr/bin;$PATH" exec non-existent

resulted in a segfault.  This happened because during a PATH search
tryexec() modified argv[0] when it detected a Unix-style path (in
this case '/usr/bin/non-existent') but failed to restore it if the
execution failed.

There were other issues:

- The logic of the new code failed to match the original:  the test
  for a Unix-style path should only have happened if an attempt to
  execute the full path had already failed.

- The test for a script running an interpreter which is an applet
  also modified argv.  If the execution failed argv should have
  been restored to its original state.

- During a PATH search the 'path' pointer walked through the
  elements of the path.  This pointer was also used to determine
  if an applet was overridden by an executable.  This is wrong:
  the full PATH variable should have been used.

The code around tryexec()/shellexec() has been rewritten to take
these issues into account.

Adds 32-48 bytes.

(GitHub issue #584)
</content>
</entry>
<entry>
<title>ash: fix build failure if SH_STANDALONE is disabled</title>
<updated>2026-05-05T07:14:22+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-05-05T07:14:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=9351ea0819bfb05da32389d93964acc56b076c8d'/>
<id>urn:sha1:9351ea0819bfb05da32389d93964acc56b076c8d</id>
<content type='text'>
It wasn't possible to build ash if FEATURE_SH_STANDALONE was
disabled.

This issue was introduced during the large merge of upstream
changes to ash in commit e23652908.
</content>
</entry>
<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>
</feed>
