EazyMake 1.1.3
EazyMake 1.1.3 — 安全收敛(二轮)+ 健壮性收口
1.1.x 稳定线补丁。基于第二轮多模块安全与质量审计。不新增命令、不弃用任何接口,公共 API 保持不变。
安全收敛(二轮)
- 钩子沙箱统一:构建/安装钩子沙箱
__index改受限全局表,dofile/loadfile/load/require/debug/package解析为nil,与 utils 脚本一致 - 包名校验:安装 /
pkg remove/search/ lockfile 恢复统一拒绝路径穿越包名(新增util::validate_pkg_name) - URL 安装完整性:无 sha256 的 URL 下载前确认(
-y可跳过);显式http://提示 MITM 风险 - flags 命令注入修复:
join_shell_args元字符集补全为/bin/sh全部相关字符,链接 flags 双引号包裹 - 编辑器命令转义:
EDITOR/VISUAL派生命令经escape_shell_arg包裹,移除全库唯一system()
健壮性收口
SOURCE_DATE_EPOCH非数字不再崩-jNworker 线程(警告并视为未设置)- install prefix
~边界:"~abc"不再被误截断 - watcher
OVERLAPPED池从全局改实例成员(多实例不再互相悬垂) recursive_死代码删除,头文件注明实际递归行为- 边缘批处理:
name.back()空串防御、.o/.obj后缀常量、CLI argv NUL 已知限制注释
代码质量与测试
- 手写
load_links_jsonJSON 解析器改nlohmann/json(支持转义与 Unicode) parse_config/compile_one_source大函数拆分(纯提取零行为漂移)- cli positional 校验提取共享 helper 去重
- watcher 永真断言清理(精确路径集合断言 + 显式 SKIP)+ 新增 argparse 单测
- 全量测试零回归:630 用例 / 2918 断言
详细变更见 CHANGES.md。