已开启
fix(execd): validate binary hex before decoding and reject bad fs_write data #57
fix(execd): validate binary hex before decoding and reject bad fs_write data #57
已开启
庄昭雄创建于 16 天前
庄昭雄
庄昭雄
16 天前

Paired: GitHub #46 ↔ GitCode !57

probe

likedislike
合并受阻
atomgit-bot
atomgit-bot
16 天前 评论:

变更摘要

本 PR 针对 platform/runtime/execd/src/runtime/fs.rs 中客户端可控制载荷的二进制 hex 解码路径进行修复。核心是让 decode_hex 在按字节切片前先校验输入是否为 ASCII hex,避免多字节 UTF-8 输入触发的字符边界 panic;同时让 fs_write 的 binary 分支复用同一解码器,使非法 hex 返回结构化错误而非静默产生 0 字节文件并返回成功。合法输入行为保持不变,非法输入统一由 panic/假成功转为带 error 的错误结果。

主要改动

  • decode_hex 增加 ASCII hex 校验: 在偶数长度判断后新增 data.bytes().all(|byte| byte.is_ascii_hexdigit()) 校验,非 ASCII hex 返回 Err("invalid hex data: non-hexadecimal character"),消除按字节下标切片时的非字符边界 panic。
  • fs_write 的 binary 分支改用 decode_hex: 替换原先 filter_map(..ok()) 的静默丢弃逻辑,解码失败时返回既有 {path,name,type,size,error} 形状且不写文件,使 fs_write 与 fs_write_chunk 的错误契约一致。
  • 新增两条单测: binary_single_shot_write_rejects_invalid_hex 验证 binary=true, data="zz" 返回非 nil 的 error 且不创建文件;binary_chunk_write_rejects_non_ascii_hex_without_panicking 验证 data="a€" 走 fs_write_chunk 时报错且不 panic、不落盘。
  • 新增测试辅助函数: 添加 field、fixture_path 两个测试辅助函数,用于从返回值中提取字段并生成带时间戳与进程 ID 的临时文件路径。
likedislike
不准确?
atomgit-bot
atomgit-bot
16 天前 评论:

代码审查

✅ 未发现问题

likedislike
不准确?
openJiuwen-bot成员
16 天前 评论:

欢迎来到 openJiuwen 社区

Hey @grandocean , 感谢你对社区的贡献.

机器人使用手册

有关指令的使用,可以点击 此处 查看详情。开发人员可以在每个PR或Issue下方评论特定指令来触发机器人任务。

likedislike
atomgit-bot
atomgit-bot
16 天前 评论:

AtomGit AI 助手使用指南

在 PR 评论中使用命令即可触发。支持在普通评论和代码行评论中使用。

功能 命令 说明
代码审查 /ai review 检查代码质量、潜在问题、安全风险
PR 摘要 /ai summary 生成 PR 变更内容的结构化摘要
代码解释 /ai explain 解释代码变更的逻辑和意图
自由提问 @atomgit-bot <问题> 询问关于本 PR 的任何问题
帮助 /ai help 显示此帮助信息

免责声明

AI 助手可能存在误判,请结合自身判断。可以对评论点 👍 或 👎 帮助我们改进。

likedislike
不准确?
OopenJiuwen-bot成员
16 天前 添加了label:openJiuwen-cla/yes
庄昭雄庄昭雄
16 天前 修改了pull request 的描述
openJiuwen-bot成员
16 天前 评论:

CLA 签署成功

grandocean, 感谢您的代码贡献。 所有的代码贡献者都已完成了 CLA 签署。 👍

likedislike
Oopenjiuwen-sync成员
16 天前 修改了pull request 的描述
openJiuwen-bot成员
16 天前 评论:

The pipeline(pipeline number:57) is running. Please wait a moment...

likedislike
OopenJiuwen-bot成员
16 天前 添加了label:ci-running
OopenJiuwen-bot成员
16 天前 删除了label:ci-running
openJiuwen-bot成员
16 天前 评论:
任务名称 结果 日志操作
静态检查 ✅SUCCESS 点此跳转
禁用词扫描 ✅SUCCESS 点此跳转
防投毒检查 ✅SUCCESS 点此跳转
开源合规检查 ✅SUCCESS 点此跳转
UT测试 N/A N/A
ST测试 N/A N/A
build 编译包 N/A N/A
ruff codecheck ✅SUCCESS N/A
issue关联检查 N/A N/A
pr size检查 N/A N/A
likedislike
OopenJiuwen-bot成员
16 天前 添加了label:ci-successful