Question about memory mappings with inaccessible permissions
Randolph Langley
langley@cs.fsu.edu
Wed Sep 30 17:01:00 GMT 2015
I am curious about some of the memory mappings that I am seeing.
Here's an example from a bash process:
$ cat /proc/4012/maps
00400000-004ef000 r-xp 00000000 08:11
3670022 /bin/bash
006ef000-006f0000 r--p 000ef000 08:11
3670022 /bin/bash
006f0000-006f9000 rw-p 000f0000 08:11
3670022 /bin/bash
006f9000-006ff000 rw-p 00000000 00:00 0
01de9000-02038000 rw-p 00000000 00:00
0 [heap]
7fbd5cde6000-7fbd5cdf1000 r-xp 00000000 08:11 2363469
/lib/x86_64-linux-gnu/libnss_files-2.19.so
7fbd5cdf1000-7fbd5cff0000 ---p 0000b000 08:11 2363469
/lib/x86_64-linux-gnu/libnss_files-2.19.so
7fbd5cff0000-7fbd5cff1000 r--p 0000a000 08:11 2363469
/lib/x86_64-linux-gnu/libnss_files-2.19.so
7fbd5cff1000-7fbd5cff2000 rw-p 0000b000 08:11 2363469
/lib/x86_64-linux-gnu/libnss_files-2.19.so
7fbd5cff2000-7fbd5cffd000 r-xp 00000000 08:11 2363596
/lib/x86_64-linux-gnu/libnss_nis-2.19.so
7fbd5cffd000-7fbd5d1fc000 ---p 0000b000 08:11 2363596
/lib/x86_64-linux-gnu/libnss_nis-2.19.so
7fbd5d1fc000-7fbd5d1fd000 r--p 0000a000 08:11 2363596
/lib/x86_64-linux-gnu/libnss_nis-2.19.so
7fbd5d1fd000-7fbd5d1fe000 rw-p 0000b000 08:11 2363596
/lib/x86_64-linux-gnu/libnss_nis-2.19.so
7fbd5d1fe000-7fbd5d215000 r-xp 00000000 08:11
2363567 /lib/x86_64-linux-gnu/libnsl-2.19.so
7fbd5d215000-7fbd5d414000 ---p 00017000 08:11
2363567 /lib/x86_64-linux-gnu/libnsl-2.19.so
7fbd5d414000-7fbd5d415000 r--p 00016000 08:11
2363567 /lib/x86_64-linux-gnu/libnsl-2.19.so
7fbd5d415000-7fbd5d416000 rw-p 00017000 08:11
2363567 /lib/x86_64-linux-gnu/libnsl-2.19.so
7fbd5d416000-7fbd5d418000 rw-p 00000000 00:00 0
7fbd5d418000-7fbd5d421000 r-xp 00000000 08:11 2363566
/lib/x86_64-linux-gnu/libnss_compat-2.19.so
7fbd5d421000-7fbd5d620000 ---p 00009000 08:11 2363566
/lib/x86_64-linux-gnu/libnss_compat-2.19.so
7fbd5d620000-7fbd5d621000 r--p 00008000 08:11 2363566
/lib/x86_64-linux-gnu/libnss_compat-2.19.so
7fbd5d621000-7fbd5d622000 rw-p 00009000 08:11 2363566
/lib/x86_64-linux-gnu/libnss_compat-2.19.so
7fbd5d622000-7fbd5dabc000 r--p 00000000 08:11
661812 /usr/lib/locale/locale-archive
7fbd5dabc000-7fbd5dc77000 r-xp 00000000 08:11
2363579 /lib/x86_64-linux-gnu/libc-2.19.so
7fbd5dc77000-7fbd5de76000 ---p 001bb000 08:11
2363579 /lib/x86_64-linux-gnu/libc-2.19.so
7fbd5de76000-7fbd5de7a000 r--p 001ba000 08:11
2363579 /lib/x86_64-linux-gnu/libc-2.19.so
7fbd5de7a000-7fbd5de7c000 rw-p 001be000 08:11
2363579 /lib/x86_64-linux-gnu/libc-2.19.so
7fbd5de7c000-7fbd5de81000 rw-p 00000000 00:00 0
7fbd5de81000-7fbd5de84000 r-xp 00000000 08:11
2363545 /lib/x86_64-linux-gnu/libdl-2.19.so
7fbd5de84000-7fbd5e083000 ---p 00003000 08:11
2363545 /lib/x86_64-linux-gnu/libdl-2.19.so
[ .... ]
Several of these have permissions of "---p"; that is, there is no
permission to read, write, or execute these mappings.
Can anyone explain why these inaccessible mappings exist? If so, are
these useful in some way? I have casually experimented with
munmap(2)-ing these, and so far I haven't seen any dire effects.
Thanks,
Randolph
More information about the Libc-help
mailing list