gpt4 book ai didi

linux - 有没有静态代码分析器可以捕获此内存泄漏?

转载 作者:太空宇宙 更新时间:2023-11-04 04:35:54 31 4
gpt4 key购买 nike

这样的泄漏对于肉眼来说似乎太微不足道了,我认为静态代码分析工具应该能够找到它们。

 Ex1:
void foo(void) {
u32 *ptr = kmalloc(512, GFP_KERNEL);
ptr = (u32 *)0xffffffff;
kfree(ptr);
}

我知道 Coverity 可以发现如下泄漏,但不确定上面的泄漏:任何人都可以告诉我这是否会在 CoveritySparse 等工具中检测到吗?

Ex2:
void foo(void) {
kmalloc(512, GFP_KERNEL);
}

Ex3:
void foo(void) {
void * ptr = kmalloc(512, GFP_KERNEL);

if (true)
return;

kfree(ptr)
}

最佳答案

我不了解 kmalloc(并且我没有具有 Coverity 许可证的 Linux 系统来测试它),但 Coverity 可以使用 malloc 轻松检测到这种形式的泄漏。所以我怀疑 kmalloc 会给它带来麻烦。

如果确实出现问题,您始终可以提供 kmalloc 函数的用户模型,该模型仅包装 malloc 函数,以便 Coverity 知道如何处理该函数。

关于linux - 有没有静态代码分析器可以捕获此内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28429786/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com