如何检测Linux内核模块中的内存安全错误?

如何检测Linux内核模块中的内存安全错误?

过去一周,我正在开发一个简单的内核模块,该模块创建一个字符设备驱动程序,允许在用户和内核空间之间传递消息。

一切都很好,我找到了 KEDR(https://github.com/euspectre/kedr),我现在可以检测内存泄漏。

但问题是:有没有办法检测越界访问以及任何其他错误,例如未初始化内存ETC?在用户空间程序中,我们有时可能会看到段错误,或者我们可以使用瓦尔格林德尝试检测大部分错误。

我尝试人为地写入数组的边界之外,并且操作系统没有抱怨。

答案1

卡桑与 非常接近memcheck,这就是您所说的意思valgrind

这是内核地址清理器[LWN.net 2014]。也可以看看基于软件标签的 KASAN[LWN.net 2018]。

相关内容