Summary
On Windows, the real install flow registers its install directory into the persistent HKCU User Path registry value, and:
- Mojibakes non-ASCII bytes when writing the value — e.g. an install dir
install_Ωμέγα is stored as install_O<replacement>??a. The value is written through a non-wide/ANSI path instead of the UTF-16 registry API.
- Never removes the entry on
uninstall — every install/uninstall cycle leaves its (often mangled) entry behind, so the User Path grows without bound.
Impact
- Non-ASCII install locations get a corrupted
Path entry (the installed binary may not be found on that PATH).
- Repeated install/uninstall accumulates dead entries; observed a User
Path bloated to ~8000 chars on a Windows test host, to the point that the shell's effective PATH became empty and broke tooling.
Expected
- Write the install dir to the User
Path via the wide (UTF-16) registry API so non-ASCII survives the round-trip.
uninstall removes exactly the entry install added — and only that entry — leaving unrelated PATH entries byte-for-byte intact.
Scope
Summary
On Windows, the real
installflow registers its install directory into the persistent HKCU UserPathregistry value, and:install_Ωμέγαis stored asinstall_O<replacement>??a. The value is written through a non-wide/ANSI path instead of the UTF-16 registry API.uninstall— every install/uninstall cycle leaves its (often mangled) entry behind, so the UserPathgrows without bound.Impact
Pathentry (the installed binary may not be found on that PATH).Pathbloated to ~8000 chars on a Windows test host, to the point that the shell's effective PATH became empty and broke tooling.Expected
Pathvia the wide (UTF-16) registry API so non-ASCII survives the round-trip.uninstallremoves exactly the entryinstalladded — and only that entry — leaving unrelated PATH entries byte-for-byte intact.Scope
Environment\Pathonly; Machine-scope PATH is unaffected.