On Thu, Sep 08, 2022 at 11:59:34PM +0200, Andrew Morton wrote: > On Thu, 8 Sep 2022 11:39:19 +0200 Vincent Whitchurch <vincent.whitchurch@xxxxxxxx> wrote: > > smaps_rollup is currently only allowed on processes which the user has > > ptrace permissions for, since it uses a common proc open function used > > by other files like mem and smaps. > > > > However, while smaps provides detailed, individual information about > > each memory map in the process (justifying its ptrace rights > > requirement), smaps_rollup only provides a summary of the memory usage, > > which is not unlike the information available from other places like the > > status and statm files, which do not need ptrace permissions. > > > > The first line of smaps_rollup could however be sensitive, since it > > exposes the randomized start and end of the process' address space. > > This information however does not seem essential to smap_rollup's > > purpose and could be replaced with placeholder values to preserve the > > format without leaking information. (I could not find any user space in > > Debian or Android which uses the information in the first line.) > > > > Replace the start with 0 and end with ~0 and allow smaps_rollup to be > > opened and read regardless of ptrace permissions. > > What is the motivation for this? Use case? End-user value and such? My use case is similar to Sergey's[0]: to be able to gather memory usage information from a daemon/script running without root permissions or ptrace rights. Values like Pss are only available from smaps_rollup, and not from the other files like status and statm which already provide memory usage information without requiring elevated privileges. [0] https://lore.kernel.org/lkml/20200929024018.GA529@jagdpanzerIV.localdomain/ smaps_rollup is however much more expensive than those other files, so I guess that could be an argument for treating it differently, even if the content itself does not need to be protected.