这样的泄漏在肉眼看来太微不足道了,我认为静态代码分析工具应该能够找到它们。
Ex1:
void foo(void) {
u32 *ptr = kmalloc(512, GFP_KERNEL);
ptr = (u32 *)0xffffffff;
kfree(ptr);
}
我知道Coverity
可以找到如下泄漏,但不确定上述泄漏:谁能告诉我这是否会在任何一个Coverity
或类似的工具中被检测到Sparse
?
Ex2:
void foo(void) {
kmalloc(512, GFP_KERNEL);
}
Ex3:
void foo(void) {
void * ptr = kmalloc(512, GFP_KERNEL);
if (true)
return;
kfree(ptr)
}