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