Re: [RFC] kernel/sysctl.c: return -EINVAL when write invalid val to ulong type sysctl

From: Yisheng Xie
Date: Tue Nov 29 2016 - 05:26:30 EST




On 2016/11/27 7:15, subashab@xxxxxxxxxxxxxx wrote:
> On 2016-11-26 02:13, Yisheng Xie wrote:
>> ----------------------
>> diff --git a/kernel/sysctl.c b/kernel/sysctl.c
>> index 706309f..40e9285 100644
>> --- a/kernel/sysctl.c
>> +++ b/kernel/sysctl.c
>> @@ -2485,10 +2485,14 @@ static int __do_proc_doulongvec_minmax(void
>> *data, struct ctl_table *table, int
>> sizeof(proc_wspace_sep), NULL);
>> if (err)
>> break;
>> - if (neg)
>> - continue;
>> - if ((min && val < *min) || (max && val > *max))
>> - continue;
>> + if (neg) {
>> + err = -EINVAL;
>> + break;
>> + }
>> + if ((min && val < *min) || (max && val > *max)) {
>> + err = -EINVAL;
>> + break;
>> + }
>> *i = val;
>> } else {
>> val = convdiv * (*i) / convmul;
>
> Agree, this should be similar to proc_douintvec
>
> root@vm:~# echo 8192 > /proc/sys/net/core/xfrm_aevent_rseqth
> root@vm:~# cat /proc/sys/net/core/xfrm_aevent_rseqth
> 8192
> root@vm:~# echo -1 > /proc/sys/net/core/xfrm_aevent_rseqth
> -bash: echo: write error: Invalid argument
> root@vm:~# cat /proc/sys/net/core/xfrm_aevent_rseqth
> 8192
>
Hi,
Thank you for your reply,
then I will write a formal patch to see whether it is acceptable.

Thanks,
Yisheng Xie
> --
> Qualcomm Innovation Center, Inc.
> The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
>
> .
>