Messages in this thread | | | Subject | Re: [PATCH] kernel/sysctl: return -EINVAL if write invalid val to ulong type sysctl | From | Yisheng Xie <> | Date | Fri, 2 Dec 2016 14:54:32 +0800 |
| |
On 2016/12/1 5:33, Andrew Morton wrote: > On Wed, 30 Nov 2016 18:30:52 +0800 Yisheng Xie <xieyisheng1@huawei.com> wrote: > >> I tried to echo an invalid value to an unsigned long type sysctl on >> 4.9.0-rc6: >> linux:~# cat /proc/sys/vm/user_reserve_kbytes >> 131072 >> linux:~# echo -1 > /proc/sys/vm/user_reserve_kbytes >> linux:~# cat /proc/sys/vm/user_reserve_kbytes >> 131072 >> >> The echo operation got error and the value do not write to >> user_reserve_kbytes, however, user do not know it until checking >> the value again. >> >> This patch return -EINVAL when write an invalid value to unsigned >> long type sysctl to make user know what happened without >> checking its value once more, just as what proc_douintvec do. > > hmpf. > > # echo 18446744073709551615 > /proc/sys/vm/user_reserve_kbytes > # cat /proc/sys/vm/user_reserve_kbytes > 18446744073709551615 > > I think that when taking in an unsigned long the kernel should simply > treat -1 as 0xffffffff (or 0xffffffffffffffff). It's natural and > normal and everyone knows what it means? > Hi Andrew, Thank you for your reply. Do you means it should be like this: # echo -1 > /proc/sys/vm/user_reserve_kbytes # cat /proc/sys/vm/user_reserve_kbytes 18446744073709551615
I looks ok to me, however, I not sure whether other code in the kernel will also use its complement if user write a negative number for an unsigned long. Does anyone have other opinion ?
Thanks Yisheng Xie.
> > > > . >
| |