bytecodealliance / bytecodealliance/cap-std

UNC and other DOS Device Paths unusable

未关闭
#348 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
help wanted
主要语言
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

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。