Skip to content

fix(security): resolve CodeQL alerts in own sources; exclude vendored stb - #22

Merged
Windsander merged 1 commit into
mainfrom
fix/codeql-alerts
Aug 28, 2026
Merged

Windsander merged 1 commit into
mainfrom
fix/codeql-alerts

Conversation

@Windsander

Copy link
Copy Markdown
Owner

背景

CodeQL Advanced 跑通后首轮扫描发现 23 个告警:3 个在自有代码,20 个在 vendored 的 stb 头文件。

改动

  • clitools/main.cc(Critical #39):fp16 转换器调用从 system() 改为无 shell spawn
    (POSIX fork+execvp,Windows _spawnvp),消除命令注入面
  • clitools/main.cc(High #38):malloc(size_t(h) * size_t(w) * 3) 消除 int 溢出
  • source/units/model_clip.cc(High ci(deps): bump actions/setup-python from 5 to 7 #17):hidden state 元素计数 size_t 化
  • .github/codeql/codeql-config.yml:paths-ignore 增加 clitools/stb
    (vendored nothings/stb 第三方头文件,不在本仓库维护,问题应报上游)

验证

  • gcc-14 -fsyntax-only -std=c++17 通过(POSIX 路径)
  • Windows 路径为 _spawnvp(_P_WAIT, ...) 标准用法,由 CI 的 windows 构建覆盖
  • 合入后 CodeQL 重扫应清零(stb 的 20 个会随排除配置自动关闭)

… stb

- clitools/main.cc: replace system() with shell-free spawn
  (fork+execvp on POSIX, _spawnvp on Windows) — fixes Critical
  'Uncontrolled data used in OS command' (#39)
- clitools/main.cc: size_t-cast malloc size computation for the
  resize buffer — fixes int-overflow alert (#38)
- source/units/model_clip.cc: size_t-cast hidden-state element count
  — fixes int-overflow alert (#17)
- codeql-config.yml: paths-ignore clitools/stb (vendored nothings/stb
  headers — third-party code, report findings upstream)
@Windsander
Windsander merged commit 6c849c6 into main Aug 28, 2026
67 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant