bytecodealliance / bytecodealliance/cap-std
UNC and other DOS Device Paths unusable
- 主要语言
- Rust
- 星标
- 821
- 派生
- 57
- 平均合并
- 1 小时 16 分钟
- 30 天内合并 PR
- 4
描述
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.
贡献指南
调研方向
从 cap-primitives/src/windows/fs/get_path.rs 的第 18–22 行开始,复现示例 DOS 设备路径的处理方式。追踪当前逻辑为何会去除或修改前缀,然后验证 UNC、卷和 \\.\ 路径是否按照 issue 中的描述得到保留或转换。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- rust
- 领域
- operating-systems
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100