CodeQL之CWE-401(4)
之前我们简要的将CWE-401分为了两类:第一类为(过程内)不存在一条路径,将已分配的内存进行了释放,而在写脚本时,我们并没有解决参数传递导致的误报
之前我们简要的将CWE-401分为了两类:第一类为(过程内)不存在一条路径,将已分配的内存进行了释放,而在写脚本时,我们并没有解决参数传递导致的误报
在第一部分中,我们将
CWE-401
简单分为两类,第一类是对于分配的内存,不存在路径对它进行了释放,第二类是有的路径释放了,而有的路径忘了释放,现在我们对第二类进行解决
在写第二类
CWE-401
的查询脚本前,我们需要补充一些东西、在能找到的codeql
文档里,大部分都只强推了它的DataFlow
模块,而在写第二类查询脚本时,需要用到它的可达性分析模块import semmle.code.cpp.controlflow.StackVariableReachability
The software does not sufficiently track and release allocated memory after it has been used, which slowly consumes remaining memory.
CWE-252: Unchecked Return Value
The software does not check the return value from a method or function, which can prevent it from detecting unexpected states and conditions.
顾名思义,Unchecked Return Value
,就是在实际代码中缺少了对返回值的检查,在实际代码中,对错误返回值的检查尤为重要,因为需要进入到相应的错误处理环节中去,否则会影响程序的正常运行。比如我们常见的对malloc
返回值的检查等等,和CWE-252
相关的还有CWE-754
、CWE-273
、CWE-476