<feed xmlns='http://www.w3.org/2005/Atom'>
<title>busybox-w32/win32, branch path_search</title>
<subtitle>A mirror of https://github.com/rmyorston/busybox-w32.git
</subtitle>
<id>https://git.lua4.win/busybox-w32/atom?h=path_search</id>
<link rel='self' href='https://git.lua4.win/busybox-w32/atom?h=path_search'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/'/>
<updated>2024-06-12T11:43:39+00:00</updated>
<entry>
<title>win32: allow for trailing separator in PATH</title>
<updated>2024-06-12T11:43:39+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-06-12T11:34:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=2817c3d4f3fb60b6719782cde57a6b7347cf2898'/>
<id>urn:sha1:2817c3d4f3fb60b6719782cde57a6b7347cf2898</id>
<content type='text'>
In recent versions of Windows the PATH environment variable has
a trailing semicolon.  This is insignificant to Windows because
it's ignored.  busybox-w32 conforms to the POSIX interpretation
of PATH which treats an empty path element as denoting the current
directory.  As result, on these versions of Windows executables
may by default be run from the current directory, contrary to
usual Unix practice.

Attempt to detect and remove the trailing semicolon on applet
start up.  If the user insists, they can add a trailing semicolon
to the shell variable PATH and it will be respected in the
conventional manner.

Adds 88-112 bytes.
</content>
</entry>
<entry>
<title>win32: some changes to kill(2)</title>
<updated>2024-05-18T09:24:28+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-05-18T09:24:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=97c9c40deb0774ffa55e65976c11ae1d51832898'/>
<id>urn:sha1:97c9c40deb0774ffa55e65976c11ae1d51832898</id>
<content type='text'>
Merge the kill() and kill_pids() functions.

Allocate an array for the PIDs rather than use a hardcoded one.

Adds 32 bytes to the 32-bit build, none to 64-bit.
</content>
</entry>
<entry>
<title>win32: implement getppid(2)</title>
<updated>2024-05-16T11:48:38+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-05-16T11:48:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=4588cd440e68af132a212d93cd3c4efd73e530b8'/>
<id>urn:sha1:4588cd440e68af132a212d93cd3c4efd73e530b8</id>
<content type='text'>
busybox-w32 had a dummy implementation of getppid(2) which always
returned 1.  Provide a more realistic version.

The effect is limited:

- The PPID shell variable should report a sensible value.

- The special value to omit the parent PID 'pidof -o %PPID'
  should work.

Costs 48 bytes.
</content>
</entry>
<entry>
<title>win32: ensure PIDs are read early in procps_scan()</title>
<updated>2024-05-16T11:42:46+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-05-16T11:42:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=2a01fe0325524f7745f60a528d1f3076c098d89d'/>
<id>urn:sha1:2a01fe0325524f7745f60a528d1f3076c098d89d</id>
<content type='text'>
Recent changes to allow orphaned processes to report a parent PID
of 1 rely on the assumption that Process32First/Process32Next
return parents before children.  This isn't guaranteed by the API.

Obtain all known PIDs on the first call to procps_scan() so that
dead parents can be detected reliably.

Costs 48 bytes.
</content>
</entry>
<entry>
<title>win32: code shrink</title>
<updated>2024-05-15T07:27:18+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-05-15T07:27:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=f1fc5ab9d6980b88eede93051736305408774122'/>
<id>urn:sha1:f1fc5ab9d6980b88eede93051736305408774122</id>
<content type='text'>
Saves 16-32 bytes
</content>
</entry>
<entry>
<title>ps: report unknown parent PID as 1</title>
<updated>2024-05-14T13:03:25+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-05-14T13:03:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=4e0359ce93c4b0185c5340d03be505b609417b04'/>
<id>urn:sha1:4e0359ce93c4b0185c5340d03be505b609417b04</id>
<content type='text'>
If the parent PID doesn't appear in the process table, report it
as 1.  This more closely matches how orphaned children are handled
on UNIX.

Adds 96-128 bytes.

(GitHub issue #416)
</content>
</entry>
<entry>
<title>kill: killing a zombie process should fail</title>
<updated>2024-05-14T11:33:03+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-05-14T11:33:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=569de936abb90f4c7cdca9da111a6ea780b135bf'/>
<id>urn:sha1:569de936abb90f4c7cdca9da111a6ea780b135bf</id>
<content type='text'>
A process which has exited may still have its process handle
held open by its children.  Such a process doesn't appear in
the process table.  It is thus similar to a zombie process in
UNIX.  Using kill(1) to interact with such a process was seen
to succeed, contrary to expectation.

The code for "ordinary" signals in kill(2) did check if the
process was still active but didn't treat an attempt to kill
an inactive process as an error.  Furthermore, sending SIGKILL
or the fake signal 0 to a process didn't even check if the
process was still active.

Rearrange the implementation of kill(2) so that an attempt to
signal an inactive process is treated as an error.  This also
consolidates handling of SIGKILL and signal 0 with "ordinary"
signals.

Saves 96 bytes.

(GitHub issue #416)
</content>
</entry>
<entry>
<title>win32: try to avoid downloading offline files</title>
<updated>2024-04-30T14:26:04+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-04-30T14:26:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=fdff0f9e8077fcf0e25a567c2be9e8da71c1676d'/>
<id>urn:sha1:fdff0f9e8077fcf0e25a567c2be9e8da71c1676d</id>
<content type='text'>
It's possible that files in remote storage may not be available
locally.  Avoid downloading such files just to obtain file
attributes.

(GitHub issue #414)
</content>
</entry>
<entry>
<title>win32: adjust handling of executable extensions</title>
<updated>2024-04-22T06:54:34+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-04-22T06:54:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=b5131ae1c0bb7984b35c909d04e2f4a61a7b6d8f'/>
<id>urn:sha1:b5131ae1c0bb7984b35c909d04e2f4a61a7b6d8f</id>
<content type='text'>
Mixing Windows and Unix-style filename extensions was causing
problems.  Tweak how extensions are handled to try and improve
matters:

- Consistently check whether the unaltered filename is an
  executable before trying adding extensions.

- Check .exe and .com before .sh.

Saves up to 16 bytes.

(GitHub issue #405)
</content>
</entry>
<entry>
<title>win32: make stat(2) fail for /dev/zero, /dev/urandom</title>
<updated>2024-04-20T07:45:19+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-04-20T07:45:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=ec3bd5c462717a6cd1668f536c8aab9d76ea04b0'/>
<id>urn:sha1:ec3bd5c462717a6cd1668f536c8aab9d76ea04b0</id>
<content type='text'>
/dev/zero and /dev/urandom are only available internally and as
arguments to 'dd'.  Since users can't otherwise access them they
shouldn't be treated as existing by stat(2).

With this change stat(1) and test(1) will deny their existence.

(GitHub issue #282)
</content>
</entry>
</feed>
