mirror of
https://gitee.com/openharmony/communication_ipc
synced 2024-11-23 15:59:58 +00:00
fix: Add IPC PULL REQUEST checklist
Signed-off-by: baiyuxin <baiyuxin3@huawei.com>
This commit is contained in:
parent
adf286ee7e
commit
a307e1608c
44
.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md
Normal file
44
.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md
Normal file
@ -0,0 +1,44 @@
|
||||
### 相关的Issue
|
||||
|
||||
|
||||
### 原因(目的、解决的问题等)
|
||||
|
||||
|
||||
### 描述(做了什么,变更了什么)
|
||||
|
||||
|
||||
### 验证结果(新增、改动、可能影响的功能)
|
||||
|
||||
|
||||
### IPC 上库必备 checklist:
|
||||
- [ ] 【规则】string 类型全局变量并发读写的保护;
|
||||
|
||||
### 日志规范自检:
|
||||
- [ ] 【规则】高频代码的正常流程中禁止打印日志;
|
||||
- [ ] 【规则】在基本不可能发生的点必须要打印日志;
|
||||
- [ ] 【规则】事件记录的日志使用 who do what 主谓宾的形式打印;
|
||||
- [ ] 【规则】状态变化的日志打印使用 state_name:s1->s2, reason:msg 的形式打印;
|
||||
- [ ] 【规则】参数值的日志打印使用 name1=value1, name2=value2… 的形式打印;
|
||||
- [ ] 【规则】代码运行成功的日志使用 xxx successful 的形式打印;
|
||||
- [ ] 【规则】代码运行失败的日志使用 xxx failed, please xxx 的形式打印;
|
||||
|
||||
### 安全编码自检:
|
||||
- [ ] 【指针】禁止对指针进行逻辑或位运算,对指针求 sizeof 需确认,指针解引用时需确认是否存在空指针解引用问题;
|
||||
- [ ] 【临时变量】指针变量、表示资源描述符的变量、bool 变量初始化必须赋初值;
|
||||
- [ ] 【数组下标】数组下标需要确认是否越界,如果下标来自外部输入,必须校验合法性;
|
||||
- [ ] 【内存管理】内存申请前必须对内存大小进行合法性校验;
|
||||
- [ ] 【内存管理】内存申请后必须释放;
|
||||
- [ ] 【内存管理】内存申请后必须判空,判断内存申请是否成功;
|
||||
- [ ] 【内存管理】全局变量释放内存后必须置空,循环体中释放变量内存后确认是否需要置空;
|
||||
- [ ] 【整数运算】整数之间运算时必须严格检查,确保不会出现溢出、反转、除 0;
|
||||
- [ ] 【整数运算】禁止对有符号整数进行位操作符运算;
|
||||
- [ ] 【循环变量】无符号数作为循环变量需确认是否存在死循环问题;
|
||||
- [ ] 【循环变量】循环次数如果受外部数据控制,需要检验其合法性;
|
||||
- [ ] 【安全函数】安全函数必须检查返回值,并进行正确处理;
|
||||
- [ ] 【安全函数】安全函数目标缓冲区大小入参与目标缓冲区实际大小必须一致;
|
||||
- [ ] 【外部输入校验】解析数据后拷贝时需校验源buffer实际缓冲区大小,避免越界读写;
|
||||
- [ ] 【外部输入校验】新增外部输入处理需考虑完整校验方案,方案需经过 MDEG 评审,并有相应 fuzz、UT 用例;
|
||||
- [ ] 【常见问题】修改单个函数时,如果涉及新增异常返回分支,必须排查是否需要释放内存、fd 等资源;
|
||||
- [ ] 【常见问题】CHECK_INSTANCE_EXIT_WITH_RETVAL、CHECK_INSTANCE_EXIT_WITH 等宏确认无资源漏释放;
|
||||
- [ ] 【常见问题】函数返回值需与函数签名相同,参数定义需在同一范畴,或同一枚举类型;
|
||||
- [ ] 【常见问题】格式化打印类型需匹配,例如:int32_t %d; uint32_t %u; long %ld; unsigned long %lu; long long PRId64(%lld); unsigned long long PRIu64(%llu); int16_t(short) %hd; uint16_t(unsigned short) %hu; int8_t %hhd; uint8_t %hhu;
|
Loading…
Reference in New Issue
Block a user