bytecodealliance / bytecodealliance/cap-std
UNC and other DOS Device Paths unusable
Open
help wanted
- Dominant language
- Rust
- Stars
- 821
- Forks
- 57
- Avg merge
- 1h 16m
- Merged PRs (30d)
- 4
Description
The following logic:
https://github.com/bytecodealliance/cap-std/blob/72fdc307184a642eadef22864434109c01d01528/cap-primitives/src/windows/fs/get_path.rs#L18-L22
completely breaks DOS device UNC paths such as:
```
\\?\UNC\server\share\bar.exe
```
which would have to be translated to:
```
\\server\share\bar.exe
```
in addition to that, other DOS device paths such as:
```
\\?\Volume{b75e2c83-0000-0000-0000-602f00000000}\Test\Foo.txt
```
get completely ruined.
There also is a lack of `\\.\` handling. I'm also not sure why this gets stripped in the first place, `join` can handle these paths just fine.
Contributor guide
Assessment
This issue has not been assessed yet.