Skip to content

[Windows][Setup] Accept verified short/long path aliases without weakening indirection checks #369

Description

@iteathen

Evidence

PR #368 hosted CI run 33202061303 on exact head d56bf576d719294aa9037f1bd6529a4800ec8d2f failed eight Windows tests after the intended Windows serialization policy was active.

Six setup-operational-configuration failures rejected ordinary GitHub runner temporary directories because %TEMP% arrived through the valid 8.3 alias C:\Users\RUNNER~1\... while Node realpath() returned C:\Users\runneradmin\.... Two Windows install-media tests made the same lexical-path assumption in expected values.

This is deterministic platform behavior, not the #290 child-process load failure. Microsoft documents that Windows may store both long names and 8.3 aliases and that GetLongPathName converts a short path to its long form. Node documents realpath() as canonicalization and warns that a canonical pathname is not necessarily unique.

Required correction

  • Preserve the setup owner's rejection of links/reparse indirection and changed file identity.
  • Treat a verified Windows short/long alias of the same filesystem object as the same identity rather than comparing only spelling.
  • Keep non-Windows path rules unchanged.
  • Make Windows media tests assert the canonical location deliberately returned by the source owner.
  • Prove on hosted Windows, not only the local long-path checkout.

Acceptance

The exact setup and media tests pass on hosted Windows with the RUNNER~1 temporary path, filesystem-indirection boundary tests remain intact, and no provider/UAC behavior changes.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions