klocwork
随着自动驾驶、车联网等技术突飞猛进的发展,汽车中包含的App越来越多。如何保证这些App的质量就成了重中之重。 经纬恒润拥有十几年的嵌入式App研发及测试经验,经验丰富的App测试团队,借助测试工具及设备给客户提供优质的静态测试服务
尝试在除法或模运算中使用零作为除数会导致运行时错误。错误处理或争用条件无效时,经常出现除以零的情况,并且通常会导致程序异常终止。在 C/C++ 代码中将值用作除法或模运算的除数之前,必须进行检查以确认值不为零
ITER 检查器可以发现容器中与迭代器相关的问题。ITER.END.DEREF.MIGHT 检查器可标记当迭代器的值可能等于 end() 或 rend() 时取消引用迭代器的实例。使用迭代器(尽管会对其进行检查)时或在其很难被发现的其他程序分支中时,可能会发生这种取消引用
PORTING 检查器会标识那些可能依赖于不同编译器中特定实施细则的代码。PORTING.BSWAP.MACRO 检查器会检测那些在不检查字节顺序的情况下使用自定义字节交换宏的情况。为了让 PORTING.BSWAP.MACRO 检查器将代码标记为字节交换宏,宏定义必须包括移位运算符和要移位的位数,可以是: 如果未采用字节顺序保护宏来保护字节交换宏,Klocwork 会报告该问题
当将未检查的用户输入用于 LDAP 查询的筛选器部分时,会检测到该错误。 可以通过验证所有来自应用程序外部的输入(例如用户输入、文件输入、系统参数等)防止 LDAP 注入攻击。要筛选用户数据,最好的方法是使用仅包括允许的字符类型的黑名单正则表达式
这是一个类级别 (CL) 检查器,可告知由于在复制构造函数中进行浅层复制导致类析构函数双重释放堆内存的潜在情况。如果一个类析构函数释放由一个或多个数据成员所指的动态内存(仅当在复制构造函数中对这些指针执行浅层复制时),Klocwork 将报告 CL.SHALLOW.COPY。 在执行浅层复制后,调用复制构造函数将导致具有数据成员的两个对象指向同一动态内存