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