1.2 KiB
1.2 KiB
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 的跨进程初始化及最终持久密钥解密既有恢复点的回归。