kfree用0x6b填充内存吗?

时间:2017-12-06 07:47:51

标签: c linux-kernel

我遇到了一个错误,我发现某个内存将被其他人为每个字符填充'0x6b'。 (我通过printk检查内存,而不是ICE。)经过大量调试后我发现这是因为我意外地对内存进行了kfree(它是由kmalloc分配的)。

我很好奇是谁填充'0x6b'并跟踪kfree代码但是找不到执行此操作的代码。它是Linux内核的调试机制还是有其他原因?

(env是内核4.9)

谢谢!

1 个答案:

答案 0 :(得分:3)

  

它是Linux内核的调试机制吗??

是的,它被称为“平板中毒”。

以下是在内存释放源中声明的0x6b

https://elixir.free-electrons.com/linux/latest/source/include/linux/poison.h#L57

以下是关于它的简短说明:

https://whatilearned2day.wordpress.com/2006/12/13/slab-poisoning/

相关问题