| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
funtionCall动态注册+查询 Co-Authored-By: Agent Signed-off-by: 朱菲墨 <zhufeimo1@huawei.com> 🤖 AI[0%] 👌 AI Adopted[0%] 🧑 Human[100%] | 2 个月前 | |
!20104 merge 降低数据库初始化失败阻塞时间 into master 新增resetFunction接口优化数据库锁和阻塞时间 Created-by: zhu-feimo Commit-by: zhu-feimo Merged-by: openharmony_ci Description: **IssueNo**: [#15888](https://gitcode.com/openharmony/ability_ability_runtime/issues/15888) **Description**: **稳定性自检:** | 自检项 | 自检结果 | | ------------------------------------------------------------ | -------- | | 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发 | | | 成员变量进行赋值或创建需要排查并发 | | | 谨慎在lambda表达式中使用引用捕获 | | | 谨慎在未经拷贝的情况下使用外部传入的string、C字符串 | | | map\vector\list\set等stl模板类使用时需要排查并发 | | | 谨慎考虑加锁范围 | | | 在IPC通信中谨慎使用同步通信方式 | | | 禁止传递this指针至其他模块或线程(特别是eventhandler任务) | | | 禁止将外部传入的裸指针在内部直接构造智能指针 | | | 禁止多个独立创建的智能指针管理同一地址 | | | 禁止在析构函数中抛异步任务 | | | 禁止js对象在非js线程(例如在IPC线程)创建、使用或销毁 | | | 禁止在对外接口中未经判空直接使用外部传入的指针 | | | 禁止接口返回局部变量引用 | | | 禁止在信号函数中加锁 | | | 禁止在关键流程(SA启动、应用启动等主流程)执行耗时的操作 | | | 禁止将同一个cpp编译在不同的so中 | | **安全编码自检:** | 自检项 | 自检结果 | | -------------------------------------------------------------- | -------- | | 裸指针避免通过隐式转换构造为sptr | | | json对象在取值之前必须先判断类型,避免类型不匹配 | | | 序列化时必须对传入的数组大小进行校验,避免出现超大数组 | | | 避免使用未明确位宽的整型,选择使用int8_t、uint8_t等类型 | | | 外部传入的路径要做规范化校验,对路径中的.、..、../等特殊字符严格校验 | | | 指针变量、表示资源描述符的变量、bool变量必须赋初值 | | | readParcelable获取的对象使用前需要判空 | | | 分配和释放内存的函数需要成对出现 | | | 申请内存后异常退出前需要及时进行内存释放 | | | 内存申请前必须对内存大小进行合法性校验 | | | 内存分配后必须判断是否成功 | | | 禁止使用realloc、alloca函数 | | | 禁止打印文件路径、口令等敏感信息,如有需要,使用private修饰 | | | 禁止打印内存地址 | | | 整数之间运算时必须严格检查,确保不会出现溢出、反转、除0 | | | 禁止对有符号整数进行位操作符运算 | | | 禁止对指针进行逻辑或位运算 | | | 循环次数如果收外部数据控制,需要检验其合法性 | | | 禁止使用内存操作类危险函数,需要使用安全函数 | | | 谨慎使用不可重入函数 | | | 必须检查安全函数的返回值,并进行正确处理 | | | 禁止仅通过TokenType类型判断绕过权限校验 | | **TDD Result**: **XTS Result**: ### 是否已执行L0用例 - [ ] 已验证 - [ ] 不涉及。如不涉及,请写明理由 ### AI检视评分(使用本地代码检视skills扫描): # 代码检视报告 — cli_tool_framework ResetNamespaceFunctions(Round 1 / 最新提交) > 统一报告由 codecheck 工作台生成,**用于门禁管控**。所有 codecheck 检视(通用编排、deep-scan、单维度 skill)合并出的统一报告必须遵循本模板:章节顺序、字段名、报告元数据块、评分与门禁规则均为**固定格式**,跨报告保持一致,便于门禁脚本解析与历史对比。 > 生成入口:[ README.md](README.md) → Step 4;合并逻辑见 [codecheck-orchestrator/SKILL.md](codecheck-orchestrator/SKILL.md)。 > 权威评分与门禁规则见文末 **附录 A**,生成时必须按其计算,不得自创分值。 --- ## 报告元数据 > **门禁脚本只读取本 YAML 块**。字段名与取值域为固定合约,禁止改名、增删或自定义取值。人工阅读与半自动化复核时,仅看本块即可快速获取决策结论。 yaml codecheck_report: schema_version: "1.0" scope: "cli_tool_framework" round: 1 commit_id: "d100f7118fda72ae81d28818627edfd9a2830936" change_id: "" commit_subject: "新增resetFunction接口优化数据库锁和阻塞时间" date: "2026-08-09" dimensions_required: [] dimensions_executed: ["manual-review", "logic-analysis", "test-coverage", "coding-standards"] waived_dimensions: [] findings_total: 3 findings_by_severity: {P0: 0, P1: 0, P2: 0, P3: 3} score: 94 risk_level: "low" gate_decision: "approve" gate_blockers: [] must_fix: [] followups: ["F-06", "F-07", "F-08"] **取值域(唯一合法值)**:risk_level ∈ {low, medium, high, unknown};gate_decision ∈ {approve, conditional, block, insufficient}。四项决策表见附录 A 第 2 节。 --- ## 1. 基本信息 | 项目 | 值 | |------|-----| | 检视范围 | cli_tool_framework | | commit-id | d100f7118fda72ae81d28818627edfd9a2830936 | | Change-Id | 未在 commit 中找到 | | commit message | 新增resetFunction接口优化数据库锁和阻塞时间 | | 检视日期 | 2026-08-09 | | 检视轮次 | Round 1 | | 检视维度 | manual-review + logic-analysis + test-coverage + coding-standards | ### 提交内容核对(目标为提交时必填) | 校验项 | 结果 | |--------|------| | 提交范围 | 28 文件(+1665/−170 行),主要是 cli_tool_framework 目录下的实现和测试文件 | | 主要变更内容 | 新增 ResetNamespaceFunctions API、数据库锁优化(重试时间从 500ms 降至 40ms)、NAPI 错误处理增强、空数据处理改进 | | 提交完整性 | ⚠️ 缺少 Change-Id,Signed-off-by 已存在 | --- ## 2. 总体评价 ### 2.1 上库质量评估结论 | 指标 | 结论 | |------|------| | **整体评分** | **94/100**(计算过程见附录 A,扣分明细见 2.3) | | **风险等级** | 🟢 低风险 | | **上库决策** | ✅ **可以上库** | **决策依据**(逐条列出,门禁脚本比对 YAML 块复核): - 依据 1:无 P0/P1 问题 - 依据 2:评分 94 ≥ 90,命中附录 A 决策矩阵第 3 行 → approve - 依据 3:3 项 P3 观察项不阻塞上库 **阻塞项(Gate Blocker)**: - 无 **上库条件(condition = 放行时必须满足,为空表示无条件)**: - 无 **设计说明**: 本提交在 KVStore 不支持事务的约束下,采用了合理的错误处理设计: - **ResetNamespaceFunctions/BatchRegisterFunctions 非原子操作**:通过返回错误码让调用方重试,这是无事务环境下的标准做法 - **空数据处理语义变更**:从"空数据=错误"改为"空数据=空列表",支持 ResetNamespaceFunctions 的"删除所有"用例 - **RestoreKvStore 返回类型简化**:从 Status 改为 void,统一错误处理路径 ### 2.2 各维度通过率 | 维度 | 通过率 | 等级 | 评价 | |------|--------|------|------| | Logic Analysis | 🟢 100% | 优秀 | 设计合理,符合无事务环境的最佳实践 | | Test Coverage | 🟢 95% | 优秀 | 测试覆盖全面,包含边界条件和错误路径 | | Coding Standards | 🟢 95% | 优秀 | 基本符合规范,少量文档待补充 | | API Compatibility | 🟢 100% | 优秀 | API 变更是必要的语义改进 | ### 2.3 评分扣分明细 | 严重等级 | 权重 | 数量 | 扣分 | |---------|------|------|------| | P0 致命 | −30 | 0 | 0 | | P1 严重 | −12 | 0 | 0 | | P2 一般 | −5 | 0 | 0 | | P3 提示 | −2 | 3 | −6 | | **合计** | | **3** | **−6** → 评分 **94** | > 公式:评分 = max(0, 100 − (30×P0 + 12×P1 + 5×P2 + 2×P3));详见附录 A。 --- ## 3. 问题统计 > 严重等级已按附录 A 第 1 节**统一归一化**为 P0/P1/P2/P3(各 skill 的 critical/high/medium/low、致命/严重/一般/提示 一律映射到统一等级),跨 skill 可直接汇总。 | 维度 | 总数 | P0 致命 | P1 严重 | P2 一般 | P3 提示 | |------|------|---------|---------|---------|---------| | Coding Standards | 2 | 0 | 0 | 0 | 2 | | Code Maintainability | 1 | 0 | 0 | 0 | 1 | | **总计** | **3** | **0** | **0** | **0** | **3** | --- ## 4. 高优先级发现(P0/P1,跨维度去重后) > 同一 file:line 被多个 skill 命中时合并为一条,标注全部维度来源。每条发现必须包含以下字段(缺失视为格式违规): | ID | 维度来源 | 位置 | 严重等级 | 概述 | 影响 | 触发路径 | 建议 | 状态 | |----|---------|------|---------|------|------|---------|------|------| **无 P0/P1 问题。** --- ## 5. 分维度明细 > 保留各 skill 原始结论(可精简字段,不可改判等级)。编号固定:5.1/5.2/… 对应实际执行维度;未执行的维度删除小节或标注"未执行(原因)"。 ### 5.1 设计说明(Logic Analysis) 在 KVStore 不支持事务的约束下,以下设计是合理的工程权衡: | 设计点 | 位置 | 说明 | |--------|------|------| | **ResetNamespaceFunctions 非原子性** | cli_function_data_manager.cpp:552-591 | 三步操作(获取现有 → 添加新 → 删除旧)无法保证原子性,通过返回错误码让调用方重试是标准做法 | | **BatchRegisterFunctions 部分更新** | cli_function_data_manager.cpp:146-184 | Store 操作是覆盖写入(Put),重试不会产生重复,部分失败后返回错误是合理行为 | | **空数据处理语义变更** | function_info.cpp:420-429, tool_info.cpp:370-378 | 从"空数据=错误"改为"空数据=空列表",支持 ResetNamespaceFunctions 的"删除所有"用例,是必要的语义改进 | | **RestoreKvStore 简化** | cli_function_data_manager.cpp:454-457 | 返回类型从 Status 改为 void,统一错误处理路径,恢复失败后 kvStorePtr_ 置空,后续操作会失败 | ### 5.2 Coding Standards(编码规范) | ID | 位置 | 类型 | 概述 | 等级 | |----|------|------|------|------| | F-06 | cli_function_data_manager.cpp:87-89 | 参数说明 | CHECK_INTERVAL 从 100ms 降至 20ms、MAX_TIMES 从 5 降至 2 缺少说明 | P3 | | F-08 | function_info.cpp:405-414 | 验证规则说明 | 函数名和命名空间禁止 '/' 字符的验证规则缺少文档说明 | P3 | ### 5.3 Code Maintainability(代码可维护性) | ID | 位置 | 类型 | 概述 | 等级 | |----|------|------|------|------| | F-07 | js_function_manager_utils.cpp:68-73 | 错误处理不完整 | napi_create_array 增加了错误检查,但 napi_create_object 未检查 | P3 | --- ## 6. 待跟进(P3 观察项) | # | ID | 发现 | 需要行动 | |---|----|------|---------| | 1 | F-06 | 重试时间参数缺少说明 | 添加注释说明为何选择 20ms/2 次 | | 2 | F-07 | napi_create_object 未检查错误 | 考虑添加错误检查以保持一致性 | | 3 | F-08 | '/' 验证规则缺少文档 | 添加代码注释说明验证原因(与 KVStore key 格式相关) | --- ## 7. 附录 ### 7.1 变更文件清单(或检视对象文件清单) | 文件 | 状态 | |------|------| | cli_tool_framework/frameworks/js/napi/cli_tool_manager/src/js_cli_manager.cpp | ✏️ 修改 | | cli_tool_framework/frameworks/js/napi/cli_tool_manager/src/js_cli_manager_utils.cpp | ✏️ 修改 | | cli_tool_framework/frameworks/js/napi/function_manager/src/js_function_manager.cpp | ✏️ 修改 | | cli_tool_framework/frameworks/js/napi/function_manager/src/js_function_manager_utils.cpp | ✏️ 修改 | | cli_tool_framework/interfaces/cli_tool/ICliToolManager.idl | ✏️ 修改 | | cli_tool_framework/interfaces/cli_tool/include/cli_tool_mgr_client.h | ✏️ 修改 | | cli_tool_framework/interfaces/cli_tool/include/tool_info.h | ✏️ 修改 | | cli_tool_framework/interfaces/cli_tool/src/cli_tool_mgr_client.cpp | ✏️ 修改 | | cli_tool_framework/interfaces/cli_tool/src/tool_info.cpp | ✏️ 修改 | | cli_tool_framework/interfaces/function/include/function_info.h | ✏️ 修改 | | cli_tool_framework/interfaces/function/src/function_info.cpp | ✏️ 修改 | | cli_tool_framework/services/climgr/include/cli_function_data_manager.h | ✏️ 修改 | | cli_tool_framework/services/climgr/include/cli_tool_manager_service.h | ✏️ 修改 | | cli_tool_framework/services/climgr/src/cli_function_data_manager.cpp | ✏️ 修改 | | cli_tool_framework/services/climgr/src/cli_tool_manager_service.cpp | ✏️ 修改 | | cli_tool_framework/test/unittest/cli_function_data_manager_test/cli_function_data_manager_test.cpp | ✏️ 修改 | | cli_tool_framework/test/unittest/cli_function_data_manager_test/mock_single_kv_store.h | ✏️ 修改 | | cli_tool_framework/test/unittest/cli_tool_mgr_client_test/cli_tool_mgr_client_test.cpp | ✏️ 修改 | | cli_tool_framework/test/unittest/cli_tool_mgr_client_test/mock/include/icli_tool_manager.h | ✏️ 修改 | | cli_tool_framework/test/unittest/cli_tool_mgr_client_test/mock/include/mock_cli_tool_mgr_client_flag.h | ✏️ 修改 | | `cli_tool_framework/test/unittest/cli See merge request: openharmony/ability_ability_runtime!20104 | 25 天前 | |
提供异步function批量接口 Signed-off-by: zhu-feimo <zhufeimo1@huawei.com> AI[100%] Human Fixed[0%] Human[0%] AI Adopted[100%] Co-authored-by: claude (glm-4.7) <ai@local> Co-authored-by: claude (glm-5.3) <ai@local> | 12 天前 | |
!20213 merge 提供异步function注册接口 into master 提供异步function接口 Created-by: zhu-feimo Commit-by: zhu-feimo Merged-by: openharmony_ci Description: **IssueNo**: [#15984](https://gitcode.com/openharmony/ability_ability_runtime/issues/15984) **Description**: **稳定性自检:** | 自检项 | 自检结果 | | ------------------------------------------------------------ | -------- | | 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发 | | | 成员变量进行赋值或创建需要排查并发 | | | 谨慎在lambda表达式中使用引用捕获 | | | 谨慎在未经拷贝的情况下使用外部传入的string、C字符串 | | | map\vector\list\set等stl模板类使用时需要排查并发 | | | 谨慎考虑加锁范围 | | | 在IPC通信中谨慎使用同步通信方式 | | | 禁止传递this指针至其他模块或线程(特别是eventhandler任务) | | | 禁止将外部传入的裸指针在内部直接构造智能指针 | | | 禁止多个独立创建的智能指针管理同一地址 | | | 禁止在析构函数中抛异步任务 | | | 禁止js对象在非js线程(例如在IPC线程)创建、使用或销毁 | | | 禁止在对外接口中未经判空直接使用外部传入的指针 | | | 禁止接口返回局部变量引用 | | | 禁止在信号函数中加锁 | | | 禁止在关键流程(SA启动、应用启动等主流程)执行耗时的操作 | | | 禁止将同一个cpp编译在不同的so中 | | **安全编码自检:** | 自检项 | 自检结果 | | -------------------------------------------------------------- | -------- | | 裸指针避免通过隐式转换构造为sptr | | | json对象在取值之前必须先判断类型,避免类型不匹配 | | | 序列化时必须对传入的数组大小进行校验,避免出现超大数组 | | | 避免使用未明确位宽的整型,选择使用int8_t、uint8_t等类型 | | | 外部传入的路径要做规范化校验,对路径中的.、..、../等特殊字符严格校验 | | | 指针变量、表示资源描述符的变量、bool变量必须赋初值 | | | readParcelable获取的对象使用前需要判空 | | | 分配和释放内存的函数需要成对出现 | | | 申请内存后异常退出前需要及时进行内存释放 | | | 内存申请前必须对内存大小进行合法性校验 | | | 内存分配后必须判断是否成功 | | | 禁止使用realloc、alloca函数 | | | 禁止打印文件路径、口令等敏感信息,如有需要,使用private修饰 | | | 禁止打印内存地址 | | | 整数之间运算时必须严格检查,确保不会出现溢出、反转、除0 | | | 禁止对有符号整数进行位操作符运算 | | | 禁止对指针进行逻辑或位运算 | | | 循环次数如果收外部数据控制,需要检验其合法性 | | | 禁止使用内存操作类危险函数,需要使用安全函数 | | | 谨慎使用不可重入函数 | | | 必须检查安全函数的返回值,并进行正确处理 | | | 禁止仅通过TokenType类型判断绕过权限校验 | | **TDD Result**: **XTS Result**: ### 是否已执行L0用例 - [ ] 已验证 - [ ] 不涉及。如不涉及,请写明理由 ### AI检视评分(使用本地代码检视skills扫描): # 代码检视报告 — cli_tool_framework@01009615(Round 3 / 最新提交) > 统一报告由 codecheck 工作台生成,**用于门禁管控**。所有 codecheck 报告(含 orchestrator 合并出的统一报告、单 scanner 直接产出的统一报告)必须遵循本模板:章节顺序、字段名、报告元数据块、评分与门禁规则均为**固定格式**,跨报告保持一致,便于门禁脚本解析与历史对比。 > 生成入口:[ README.md](../../README.md) → Step 5;合并逻辑见 [orchestrator/SKILL.md](../../orchestrator/SKILL.md)。 > **轮次沿革**:R1 三维扫描出 17 项(P1×1、P2×8、P3×8)→ R2 门禁复核人裁决(豁免 P1、关闭 8 项、2 项转排期)→ R3 复核人再裁 7 项「非问题关闭」。现存跟进 2 项 P3(INP-011、INP-007,未在关闭清单内)。全部裁决原文见 [refute_log.md](refute_log.md) 附录。 --- ## 报告元数据 > **门禁脚本只读取本 YAML 块**。字段名与取值域为固定合约,禁止改名、增删或自定义取值。人工阅读部分从「1. 门禁结论」开始。 > 注:本提交(git squash 提交)无 Change-Id,change_id 记 N/A,report_id 按 conventions §6 以 commit 前 8 位代替。findings_* 仅统计裁决后**仍在跟进**的有效发现;裁决关闭项在第 4 节留档,不计入。 <!-- codecheck-report-metadata:start --> yaml codecheck_report: schema_version: "1.0" scope: "cli_tool_framework@01009615" round: 3 commit_id: "0100961568a207a2d0440c3054d8dd01df3a2b79" change_id: "N/A" report_id: "01009615-R3" date: "2026-08-25" gate_decision: "approve" risk_level: "low" score: 96 dimensions_required: ["security-scanner", "logic-scanner", "input-scanner"] dimensions_executed: ["security-scanner", "logic-scanner", "input-scanner"] findings_total: 2 findings_by_severity: {P0: 0, P1: 0, P2: 0, P3: 2} gate_blockers: [] must_fix: [] followups: ["INP-011", "INP-007"] <!-- codecheck-report-metadata:end --> --- ## 1. 门禁结论 | 项目 | 结论 | |---|---| | 决策 | **approve** | | 风险等级 | 🟢 low | | 评分 | **96/100**(100 − 2×P3×2) | | 阻塞项 | 无 | | 必须修复(P0/P1) | 0 项 | | 建议跟进(P2/P3) | 2 项(INP-011、INP-007,均为 P3;另有 15 项经两轮裁决关闭留档) | **一句话结论**:探测到 IPC(oneway IDL)+ KVStore 持久化双信号,security+logic+input 三维全检;R1 共 17 项发现,经门禁复核人两轮书面裁决(R2 豁免 P1 并关闭/转期 8 项,R3 非问题关闭 7 项),现存跟进仅 2 项 P3;无 P0、无鉴权绕过、无内存安全缺陷,评分 96/100,**approve / low,可上库**。 --- ## 3. 必须立即处理(P0/P1) **无。** R1 唯一 P1 项 INP-009 于 R2 经门禁复核人书面裁决豁免,详见第 6 节与 [refute_log.md](refute_log.md) 附录。 --- ## 4. 建议本轮或下一补档处理(P2/P3) ### 4.1 跟进中(2 项) | ID | 优先级 | 问题 | 建议行动 | 排期 | |---|---|---|---|---| | INP-011 | P3 | UnregisterIntentFunctionsByNamespace 入参零校验(空串经 "/" 前缀空匹配返回假成功 ERR_OK;含 / 未拦) | 补 empty()/含 //长度检查,复用 KeyMatchesNamespace(:263-272) | 下一迭代 | | INP-007 | P3 | Validate 未禁 \0/控制字符,ns 含 \0 入库后日志 c_str() 截断误导审计(并承接 R2 关闭的 SEC-04 之 CRLF 过滤诉求) | Validate 增加可打印字符白名单或至少禁 \0/\r/\n | 下一迭代 | ### 4.2 裁决关闭留档(15 项) | ID | 原优先级 | 问题 | 裁决轮次与结论 | |---|---|---|---| | INP-009 | P1 | 批量注册无事务,oneway 部分失败对调用方不可见 | R2:调用方无需感知成败、异常不处理,日志可定位 → 裁决豁免 | | SEC-01(+INP-010) | P2 | 服务端忽略 ToFunctionInfoVec 返回值(:626) | R2:数据库设计无法避免后续统一优化;**R3:非问题关闭** | | SEC-02 | P2 | mock 与 oneway 返回值语义背离 | R2:IDL 基类虚函数带返回值必须实现,返回值被 IDL 丢弃属预期 → 关闭 | | SEC-04(+INP-006) | P2 | 鉴权前 LOGD 打印 namespace(日志注入面) | R2:namespace 非敏感可打印 → 关闭(CRLF 诉求由 INP-007 承接) | | INP-003 | P2 | KV key 全局共享无归属隔离 | R2:当前修改无需考虑 userId 设计 → 范围外关闭 | | LOG-01 | P2 | oneway 变更接口乱序/契约未声明 | R2:三接口独立场景无顺序问题 → 关闭 | | SEC-03 | P2 | 单批 200k 整批持锁 + oneway 无背压 | R3:非问题关闭 | | INP-008 | P2 | 反序列化总量/条目/字段上限过宽 | R3:非问题关闭 | | LOG-02 | P2 | oneway 静默拒绝无 DFX | R3:非问题关闭 | | LOG-03 | P3 | 客户端 async 用例断言不足 | R2:测试/mock 文件不检视 → 范围豁免 | | LOG-04 | P3 | Mock Reset 语义与真实相反 | R2:同上 → 范围豁免 | | LOG-05 | P3 | 服务端 async 用例每接口仅 2 类 | R2:同上(随判,可复议)→ 范围豁免 | | SEC-05 | P3 | FunctionsRawData 默认拷贝 latent UAF | R3:非问题关闭 | | SEC-06 | P3 | 包装层未直接实例化 InterfaceCallCounter | R3:非问题关闭 | | RES-001 | P3 | DATA_CORRUPTED 整库删重建 | R2:数据库设计无法避免;**R3:非问题关闭** | > **裁决记录**:R2 八条裁决原文见本文件 R2 版及 [refute_log.md](refute_log.md) 附录一;R3 裁决原文:「RES-001,SEC-01(+INP-010),SEC-03,INP-008,LOG-02,SEC-05,SEC-06 非问题关闭」(2026-08-25,门禁复核人)。 --- ## 5. 分维度速览 | 维度 | 结果 | 关键说明 | |---|---|---| | security-scanner | R1 6 项 → **全部关闭**(SEC-01/03/05/06 R3,SEC-02/04 R2) | Core Scan 11 项全覆盖;⑪ IPC 鉴权审查通过:3 个新 code 继承同步版鉴权(:614/:726/:755),鉴权先于解析与落盘;G 类横扫 G14 唯一命中点经裁决关闭;P0 候选均证伪 | | logic-scanner | R1 5 项 → **全部关闭**(LOG-02 R3,LOG-01 R2,LOG-03/04/05 范围豁免) | 客户端 async 与 sync 逐行同构;IDL 尾部追加 ABI 兼容;oneway 顺序性经裁决认定为独立场景无顺序问题 | | input-scanner | R1 8 项 → **跟进 2 项**(INP-011、INP-007,均 P3) | IPC-005/006 鉴权 ✅;INP-009 R2 豁免,INP-003/008/RES-001 关闭,INP-006/010 并入对应项随判关闭 | --- ## 6. 关键发现详情 > 本轮无 P0/P1;现存 2 项 P3 卡片如下,已关闭项的完整卡片见 [refute_log.md](refute_log.md) 与各 scanner 原始产出。 ### [INP-011] UnregisterIntentFunctionsByNamespace 入参零校验 (P3, 跟进中, scanner=input-scanner) - **位置**:cli_tool_framework/services/climgr/src/cli_tool_manager_service.cpp:721-745(服务端透传)、cli_function_data_manager.cpp:449(前缀批删) - **触发路径**:Parcel string(可空、可含 /)→ service :766 无校验直接透传 → manager 以 ns + "/" 前缀 GetEntries 批删;空串前缀 "/" 空匹配返回 ERR_OK 假成功。 - **影响**:空串调用方拿到成功但实际未删任何项,误导调用方状态判断;写入侧 Validate 禁 / 仅兜底新写入,不影响历史数据。 - **证据**:cli_tool_manager_service.cpp:721-745(无入参检查,对比 :763-766 Reset 有 empty 检查)。 - **建议**:补 empty()/含 //长度三检,复用 manager 现成 KeyMatchesNamespace(:263-272)。 ### [INP-007] Validate 未禁 \0/控制字符 (P3, 跟进中, scanner=input-scanner) - **位置**:cli_tool_framework/interfaces/function/src/function_info.cpp:251-300 - **触发路径**:Parcel ReadString 可含内嵌 \0/\r/\n → Validate 仅查空串、/、schema 长度与 JSON 合法性,放行 → Put 入 KVStore;后续日志 c_str() 截断显示。 - **影响**:入库后审计/定界时 namespace 显示被截断误导;\r\n 可伪造日志行(承接 R2 关闭的 SEC-04 过滤诉求,同一修复位置)。 - **证据**:function_info.cpp:251-300(Validate 全量检查项清单,无字符集校验)。 - **建议**:Validate 增加可打印字符白名单,或至少禁 \0/\r/\n。 --- ## 附:交付物清单 | 产出 | 路径 | |---|---| | 本统一报告(Round 3) | skills/codecheck/output/commit-01009615/codecheck_report_cli_tool_framework_20260825.md | | Refute 审查记录(含 R2/R3 裁决附录) | skills/codecheck/output/commit-01009615/refute_log.md | | security-scanner 原始清单 | skills/codecheck/output/commit-01009615/security_raw.md | | logic-scanner 原始清单 | skills/codecheck/output/commit-01009615/logic_raw.md | | input-scanner 原始清单 | skills/codecheck/output/commit-01009615/input_raw.md(以 Excel 同构 Markdown 表代替 Excel) | See merge request: openharmony/ability_ability_runtime!20213 | 11 天前 | |
utils_0826 Signed-off-by: Luobniz21 <luoyicong@h-partners.com> 🤖 AI[100%] 🔧 Human Fixed[0%] 🧑 Human[0%] 👌 AI Adopted[100%] Co-authored-by: opencode (glm-5.2) <ai@local> | 10 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 个月前 | ||
| 25 天前 | ||
| 12 天前 | ||
| 11 天前 | ||
| 10 天前 |