这个值出现在泊松.h (linux源代码\包括\linux\泊松.h)中:
/*
* Architectures might want to move the poison pointer offset
* into some well-recognized area such as 0xdead000000000000,
* that is also not mappable by user-space exploits:
*/我只是好奇价值0xdead000000000000的特殊之处
发布于 2015-01-06 19:58:26
非常肯定,这只是死牛肉的一个变体;也就是说,它只是一个容易识别的信号值(参见http://en.wikipedia.org/wiki/Hexspeak中的死牛肉)
指针中毒的想法是确保中毒的列表指针不能在不造成崩溃的情况下使用。假设您从它所在的列表中断开了一个结构。然后,您希望使指针值失效,以确保它不再用于遍历列表。如果代码中有一个bug --一个悬空的指针引用--你想确保任何试图跟踪这个列表的代码都会立即崩溃(而不是在某个可能不相关的代码区域)。
当然,您可以简单地通过在指针中放置空值或任何其他无效地址来毒害指针。使用0xad000000000000作为基值,只会使区分显式中毒值与用零初始化或用零覆盖的值变得更容易。它可以与偏移量(LIST_POISON{1,2})一起使用,以创建多个不同的毒值,这些值都指向虚拟地址空间中不可用的区域,并且一眼就可识别为无效。
https://stackoverflow.com/questions/27801360
复制相似问题