【发布时间】:2011-09-13 00:06:57
【问题描述】:
根据this thread,malloc分配的内存至少有PROT_READ | PROT_EXEC,否则contaned函数无法执行。
man malloc 没有提到任何关于保护的内容,因此是个问题。
【问题讨论】:
-
你确定这是正确的线程吗?我在那里看不到任何关于 PROT_READ 或 PROT_EXEC 的信息。我认为这两个与mmap有关。 (见pubs.opengroup.org/onlinepubs/007908799/xsh/mmap.html)
-
@Catcall ,这就是为什么我说
malloc返回的内存隐含了PROT_READ或PROT_EXEC,因为它不必mprotect(p, 1024, PROT_READ|PROT_EXEC)而mmap返回的内存必须.
标签: c memory-management protection