RO/NX Protections and Modules
Regarding the source code for kernel version 2.6.38. In kernel/module.c the function defined as: SYSCALL_DEFINE3(init_module...) Calls set_section_ro_nx for core and init. My first question is this: Q1: Why doesn't the exit text/data get the RO/NX page protection? In the set_section_ro_nx function the RO comment reads: "Do not protect last partial page" and the NX comment reads: "Do not protect first partial page." In the presence of mixed pages this makes sense. However, change_page_attr_set_clr seems to check for page alignment. So my second question is this: Q2: Does the RO/NX only apply to page aligned sections? Thank you, Dannie -- Dannie M. Stanley
On 01/23/2012 02:04 PM, Dannie Stanley wrote:
Regarding the source code for kernel version 2.6.38. In kernel/module.c the function defined as:
SYSCALL_DEFINE3(init_module...)
Calls set_section_ro_nx for core and init. My first question is this:
Q1: Why doesn't the exit text/data get the RO/NX page protection?
I guess this is a trade off.
In the set_section_ro_nx function the RO comment reads: "Do not protect last partial page" and the NX comment reads: "Do not protect first partial page." In the presence of mixed pages this makes sense. However, change_page_attr_set_clr seems to check for page alignment. So my second question is this:
Q2: Does the RO/NX only apply to page aligned sections?
Most MMUs/TLBs deal only with page sized memory. They handle access attributes in page sized memory.
Thank you, Dannie
-Fredrick
participants (2)
-
Dannie Stanley -
Fredrick