double kernel page table entry for the same physical page?!

Pantelis Antoniou panto at intracom.gr
Thu Jul 14 17:15:24 EST 2005


ming lei wrote:
> Dan,
> 
> No one intents to make memory corruption in kernel
> space but it happens sometimes.
> 
> Say I have a global var in my kernel module which
> called test-mod, it picks up a physical page allocated
> by some code with  kmalloc and later kfreed(suppose
> when it does, the whole page gets freed). But then
> this code forgets a pointer(which maped to this
> physical page) already freed and modifies the pointer,
> the write gets thru since that virt address's PTE
> still valid and points to the physical page currently
> used by test-mod. So the memory corruption happens.
> 
> Maybe I miss something in the linux kernel code that
> prevents this double PTE thing.
> 
> Ming
> 

If you want to guard against stuff like this you have
some options...

1) Run different services on the same cpu on a a hypervisor
   like Xen.

2) Run most of the module's code in user space, and keep
   kernel space code to a minimum.

3) Use QNX.

Regards

Pantelis



More information about the Linuxppc-embedded mailing list