我只是想知道用户程序通过brk系统调用释放的内存会发生什么,然后再次返回。内核是否清除它或者内容是否未定义?
我相信内核在通过brk重新分配时会清除页面,但是如果返回该页面,则将其全部归零,然后再次请求返回,我就无法解决问题。我正在通过lxr.linux.no来查找。我还会看一下this帖子中建议的那本书。
感谢您的回复。
添
答案 0 :(得分:3)
您获得了新的归零页面:http://lxr.linux.no/#linux+v2.6.30.5/mm/memory.c#L2580
必须清除新页面的内容。它可能包含敏感信息,考虑安全性。
答案 1 :(得分:1)
如果您担心信息泄漏,不应该将未分配的页面推送到交换,尽管各种冷启动攻击可能会对它们起作用。
有关详细信息,请参阅最近的LWN文章:http://lwn.net/Articles/340370/