Re: [PATCH v3 0/6] ipc: Clamp *mni to the real IPCMNI limit

From: Waiman Long
Date: Thu Mar 08 2018 - 14:22:51 EST


On 03/08/2018 01:38 PM, Luis R. Rodriguez wrote:
> On Thu, Mar 08, 2018 at 06:23:35PM +0000, Luis R. Rodriguez wrote:
>> On Thu, Mar 01, 2018 at 12:43:34PM -0500, Waiman Long wrote:
>>> v2->v3:
>>> - Fix kdoc comment errors.
>>> - Incorporate comments and suggestions from Luis R. Rodriguez.
>>> - Add a patch to fix a typo error in fs/proc/proc_sysctl.c.
>>>
>>> v1->v2:
>>> - Add kdoc comments to the do_proc_do{u}intvec_minmax_conv_param
>>> structures.
>>> - Add a new flags field to the ctl_table structure for specifying
>>> whether range clamping should be activated instead of adding new
>>> sysctl parameter handlers.
>>> - Clamp the semmni value embedded in the multi-values sem parameter.
>>>
>>> v1 patch: https://lkml.org/lkml/2018/2/19/453
>>> v2 patch: https://lkml.org/lkml/2018/2/27/627
>>>
>>> The sysctl parameters msgmni, shmmni and semmni have an inherent limit
>>> of IPC_MNI (32k). However, users may not be aware of that because they
>>> can write a value much higher than that without getting any error or
>>> notification. Reading the parameters back will show the newly written
>>> values which are not real.
>>>
>>> Enforcing the limit by failing sysctl parameter write, however, can
>>> break existing user applications. To address this delemma, a new flags
>>> field is introduced into the ctl_table. The value CTL_FLAGS_CLAMP_RANGE
>>> can be added to any ctl_table entries to enable a looser range clamping
>>> without returning any error. For example,
>>>
>>> .flags = CTL_FLAGS_CLAMP_RANGE,
>>>
>>> This flags value are now used for the range checking of shmmni,
>>> msgmni and semmni without breaking existing applications. If any out
>>> of range value is written to those sysctl parameters, the following
>>> warning will be printed instead.
>>>
>>> Kernel parameter "shmmni" was set out of range [0, 32768], clamped to 32768.
>>>
>>> Reading the values back will show 32768 instead of some fake values.
>> I don't see any addition of respective tests cases, I thought I asked
>> for this. Please add respective tests cases for all the API you are
>> adding on lib/test_sysctl.c and respective tests on
>> tools/testing/selftests/sysctl/sysctl.sh
> Andrew,
>
> If its not too much trouble please only apply the first two patches of this
> series. The rest should be dropped. I think it would be a mistake for us to
> take start carrying the rest at this point in time.
>
> Luis

So I am going to assume that the first 2 will be in and drop them in my
v4 patch.

Cheers,
Longman