env_read copies bytes from GetEnvironmentStringsA into the environment representation consumed by Wave. The narrow block is not guaranteed to contain UTF-8, and characters unavailable in that encoding may already be lost before copying. Unicode environment keys and values therefore need a wide-API conversion path independent of filesystem path handling.
Source evidence at the head of #520:
Acceptance:
API/reference context: GetEnvironmentStrings.
Related: #385 and #427; #427 requests portable boundary tests, whereas this issue fixes the native encoding implementation.
Audit status: identified by static source inspection; the scenarios above have not been executed during this audit. The permalink fixes the reviewed revision; this report does not claim the defect was introduced by #520.
env_readcopies bytes fromGetEnvironmentStringsAinto the environment representation consumed by Wave. The narrow block is not guaranteed to contain UTF-8, and characters unavailable in that encoding may already be lost before copying. Unicode environment keys and values therefore need a wide-API conversion path independent of filesystem path handling.Source evidence at the head of #520:
GetEnvironmentStringsApub fun env_readAcceptance:
API/reference context: GetEnvironmentStrings.
Related: #385 and #427; #427 requests portable boundary tests, whereas this issue fixes the native encoding implementation.
Audit status: identified by static source inspection; the scenarios above have not been executed during this audit. The permalink fixes the reviewed revision; this report does not claim the defect was introduced by #520.