On Thu, Aug 20, 2020 at 2:40 PM Cyrill Gorcunov <gorcunov@xxxxxxxxx> wrote: > > On Wed, Aug 19, 2020 at 07:46:50PM +0530, Sumit Semwal wrote: > ... > > Userspace can set the name for a region of memory by calling > > prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, start, len, (unsigned long)name); > > Setting the name to NULL clears it. > > > > The name is stored in a user pointer in the shared union in vm_area_struct > > that points to a null terminated string inside the user process. vmas > > that point to the same address and are otherwise mergeable will be merged, > > but vmas that point to equivalent strings at different addresses will not > > be merged. > ... > > Guys, could you please enlighen me, I don't understand -- we pass some > random user-space pointer and save it in vm_area_struct then in procfs > we treat it as "string" and print out? What prevents me to put some crap > here then unmap this pointer the kernel will cause page fault in procfs > output (in best scenario)? This is the same pattern used for /proc/pid/cmdline. acccess_remote_vm handles addresses in unmapped pages, it will return 0 if no bytes were readable.