lkml.org 
[lkml]   [2012]   [Dec]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [RFC] stack and heap are executable on x86_64
From
On Thu, Dec 20, 2012 at 8:44 PM, H. Peter Anvin <hpa@zytor.com> wrote:
> I just looked at a /sys/kernel/debug/kernel_page_tables dump.... and there
> are a bunch of pages which are RWX:
>
> 0xffff880000000000-0xffff880000097000 604K RW GLB x pte
> 0xffff88000009d000-0xffff880000200000 1420K RW GLB x pte
> 0xffff880000200000-0xffff880001000000 14M RW PSE GLB x pmd
> 0xffff880001c00000-0xffff880035e00000 834M RW PSE GLB x pmd
> 0xffff880035e00000-0xffff880035ffe000 2040K RW GLB x pte
> 0xffff880036ff7000-0xffff880037000000 36K RW GLB x pte
> 0xffff880037000000-0xffff880040000000 144M RW PSE GLB x pmd
> 0xffffffff81c00000-0xffffffff81cea000 936K RW GLB x pte
> 0xffffffff81dfd000-0xffffffff81e00000 12K RW GLB x pte
> 0xffffffff81e00000-0xffffffff82000000 2M RW PSE GLB x pmd

after for-x86-boot we will have
---[ Low Kernel Mapping ]---
0xffff880000000000-0xffff880000099000 612K RW GLB NX pte
0xffff880000099000-0xffff88000009a000 4K ro GLB NX pte
0xffff88000009a000-0xffff88000009b000 4K ro GLB x pte
0xffff88000009b000-0xffff880000200000 1428K RW GLB NX pte
0xffff880000200000-0xffff8800dfe00000 3580M RW PSE GLB NX pmd
0xffff8800dfe00000-0xffff8800dfffe000 2040K RW GLB NX pte
0xffff8800dfffe000-0xffff8800e0000000 8K pte
0xffff8800e0000000-0xffff880100000000 512M pmd
0xffff880100000000-0xffff8801a0000000 2560M RW PSE GLB NX pmd
---[ High Kernel Mapping ]---
0xffffffff80000000-0xffffffff81000000 16M pmd
0xffffffff81000000-0xffffffff82a00000 26M RW PSE GLB x pmd
0xffffffff82a00000-0xffffffff82b21000 1156K RW GLB x pte
0xffffffff82b21000-0xffffffff82c00000 892K RW GLB NX pte
0xffffffff82c00000-0xffffffff82e00000 2M RW PSE GLB NX pmd
0xffffffff82e00000-0xffffffff82e92000 584K RW GLB NX pte
0xffffffff82e92000-0xffffffff83000000 1464K RW GLB x pte
0xffffffff83000000-0xffffffff83c00000 12M RW PSE GLB x pmd
0xffffffff83c00000-0xffffffffa0000000 452M pmd

so low mapping will only have trampoline get x set.
is that expected ?

Do we need to set low mapping corresponding to kernel range to x?

Yinghai


\
 
 \ /
  Last update: 2012-12-21 08:21    [W:0.106 / U:0.324 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site