4 lines
1.2 KiB
Markdown
4 lines
1.2 KiB
Markdown
FAIL
|
||
|
||
crates/ely-files/src/key.rs:55 — [P1] 共同锁仍依赖进程环境中的 `HOME`,凭据身份则固定为 `ElyOffice Recovery/recovery-key`;`directories` 6.0.0 在 macOS/Linux 的 `home_dir()` 优先读取 `HOME`,同一系统用户、同一凭据服务下的两个应用使用不同 `HOME` 时会取得不同锁,并发覆盖同一恢复密钥。隔离双进程探针调用原样的 `RecoveryKey::load()`,仅以共享测试凭据后端控制首次读取交错:A、B 都读到缺失,A 完成初始化并生成加密恢复点,B 随后覆盖凭据;两次加载均成功且密钥不同,最终持久密钥读取 A 的恢复点返回 `InvalidData: the sealed point is unreadable`。macOS 与 Linux 均复现;相同 `HOME`、不同 `XDG_DATA_HOME` 的对照及 r7 的失败回滚回放均通过。现有 macOS 87 项、Linux 86 项测试及 Windows 目标编译检查通过,新增路径单测只检查传入常量的拼接,未覆盖实际账户与环境变量的作用域差异。修复方向:用稳定的操作系统账户身份定位共同锁,或将锁与凭据绑定到同一规范化命名空间;补同一账户、不同 `HOME` 的跨进程初始化及最终持久密钥解密既有恢复点的回归。
|