Re: [PATCH] proc: Fix integer overflow of VmLib

From: Michal Hocko
Date: Thu Jan 05 2017 - 08:49:16 EST


On Thu 05-01-17 14:20:22, Richard Weinberger wrote:
> Michal,
>
> Am 05.01.2017 um 12:49 schrieb Michal Hocko:
> >> I thought 0 is the better choice since it will not lead to wrong results
> >> when userspace tools compute the sum of values reported by /proc/<pid>/status.
> >
> > Dunno. If somebody translates 0 to statically linked library then it
> > could be wrong.
>
> Checking VmLib for 0 is not the correct way to detect a statically linked
> program.

If you just read the documentation:
VmLib size of shared library code

then 0 might suggest there are no shared libraries used and the code is
statically linked

> Unless I misread the code, VmLib will honour any PROT_EXEC mapping.
> So, a statically linked JIT will have VmLib > 0.

yes the code behaves differently and that's why I've said that the
reported number is not correct no matter how.

Anyway, as I've said I do not see any solution without risk of
regression while the current code is clearly wrong. If the general
consensus is that 0 is better than explicitly documenting VmLib as the
size of executable code and report it that way then I have no objections
and won't stay in the way. I am not sure which poison is worse.
--
Michal Hocko
SUSE Labs