Skip to content

EazyMake 1.1.3

Choose a tag to compare

@3667808244 3667808244 released this 10 Aug 09:28
· 303 commits to main since this release

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 非数字不再崩 -jN worker 线程(警告并视为未设置)
  • install prefix ~ 边界:"~abc" 不再被误截断
  • watcher OVERLAPPED 池从全局改实例成员(多实例不再互相悬垂)
  • recursive_ 死代码删除,头文件注明实际递归行为
  • 边缘批处理:name.back() 空串防御、.o/.obj 后缀常量、CLI argv NUL 已知限制注释

代码质量与测试

  • 手写 load_links_json JSON 解析器改 nlohmann/json(支持转义与 Unicode)
  • parse_config / compile_one_source 大函数拆分(纯提取零行为漂移)
  • cli positional 校验提取共享 helper 去重
  • watcher 永真断言清理(精确路径集合断言 + 显式 SKIP)+ 新增 argparse 单测
  • 全量测试零回归:630 用例 / 2918 断言

详细变更见 CHANGES.md