mirror of
https://gitee.com/openharmony/window_window_manager
synced 2024-11-23 06:50:40 +00:00
b4cb4487bf
添加IPC相关检查,删除内核相关检查 Signed-off-by: qianlf <qianliangfang@huawei.com>
3.1 KiB
3.1 KiB
Description:
Issue number:
Test & Result:
CodeCheck:
类型 | 自检项 | 自检结果 |
---|---|---|
多线程相关 | 在类的成员变量中定义了vector/map/list等容器类型,且在多个成员函数中有操作时,需要加锁保护 | 自检结果: |
定义全局变量,在多个函数中都有操作时,需要加锁保护 | 自检结果: | |
内存相关 | 调用外部接口时,确认是否对返回值做了判断,尤其外部接口返回了nullptr的情况,避免进程崩溃 | 自检结果: |
调用安全函数时,如memcpy_s等,是否检查其返回值 | 自检结果: | |
检查函数中是否涉及了内存或资源申请(如文件句柄),注意每个异常退出流程,是否都已经将资源释放(推荐使用RAII) | 自检结果: | |
隐式内存分配场景:realpath、ReadParcelable序列化、cJSON相关函数时等,需主动释放或使用智能指针 | 自检结果: | |
校验外部输入 | 使用nlohmann:json解析外部输入时,需判断参数类型是否符合预期 | 自检结果: |
所有外部输入均不可信,需判断外部输入是否直接作为内存分配的大小,数组下标、循环条件、SQL查询等 | 自检结果: | |
外部输入的路径不可信,需使用realpath做标准化处理,并判断路径的合法性 | 自检结果: | |
外部输入包括对外提供的接口,IPC的proxy/stub接口,序列化/反序列化接口等 | 自检结果: | |
数学运算 | 代码中是否混合了加减乘除等运算,需检查是否可能导致整数溢出或符号翻转 | 自检结果: |
需检查代码是否有高精度数字转换为低精度的操作,如果必须,建议使用C++安全类型转换接口 | 自检结果: | |
检查代码在计算时是否有除零操作(包括除数是计算出来的结果可能为0的情况) | 自检结果: | |
权限相关 | 作为系统服务对外提供了接口,是否做了权限保护和校验(如需要),只允许申请了权限的应用访问 | 自检结果: |
提供给其他系统服务的接口默认需要做SA服务校验 | 自检结果: | |
跨进程通信 | 优先使用异步IPC,若必须使用同步IPC需要考虑对端卡死或高延时影响 | 自检结果: |
序列化/反序列化中数据读写顺序要严格对齐 | 自检结果: |