W19: plugin_loader hardening — ABI try/catch, path validation, atomic IDs, CLI exit codes (W19.1-W19.5)
Some checks failed
CI / Determine matrix (push) Has been cancelled
CI / ${{ matrix.os }} / ${{ matrix.build_type }} (push) Has been cancelled

Fixes: F-18.3-1 through F-18.3-5 (all CLOSED, findings registry at zero)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-27 19:34:43 +08:00
parent c545d16120
commit 3250b5a8bf
15 changed files with 273 additions and 30 deletions

View File

@@ -26,5 +26,16 @@ performance_log:
- date: 2026-05-27
event: "W11.3: event_bus 单元测试 (6 cases, tests/event_bus_test.cpp) + service_registry 补充测试 (6 cases, tests/service_registry_test.cpp) — 提升 core 覆盖率,补边界/生命周期 case"
rating: completed
- date: 2026-05-27
event: "W19.2: 验证 plugin_loader MEDIUM 发现修复 — F-18.3-2 诊断日志/F-18.3-3 路径验证/F-18.3-4 日志管线/F-18.3-5 原子递增, cmake --build build --config Release 0 error + ctest 5/5 pass"
rating: success
details:
- "F-18.3-2: load_plugin 5 失败点添加 host->log 错误日志 + GetLastError()/dlerror() 诊断"
- "F-18.3-3: 添加 fs::absolute + lexically_normal 路径规范化、扩展名白名单(.dll/.so/.dylib)、目录约束(plugins/子目录)、目录遍历防护"
- "F-18.3-4: initialize_all fprintf(stderr) 改为 host->log() (已在 W18 前置修复)"
- "F-18.3-5: next_id_ 从 int 改为 std::atomic<int> 确保原子递增"
- "编译: cmake --build build --config Release → 0 error"
- "测试: ctest → 5/5 pass (smoke + host-api + event-bus + service-registry + context)"
- "协作: 与陈风 (engineer-chen) 配对实施 + 验证"
current_groups: []
---