Files
linux/fs
Yicong Yang 8dd5f58475 libfs: fix error cast of negative value in simple_attr_write()
[ Upstream commit 488dac0c92 ]

The attr->set() receive a value of u64, but simple_strtoll() is used for
doing the conversion.  It will lead to the error cast if user inputs a
negative value.

Use kstrtoull() instead of simple_strtoll() to convert a string got from
the user to an unsigned value.  The former will return '-EINVAL' if it
gets a negetive value, but the latter can't handle the situation
correctly.  Make 'val' unsigned long long as what kstrtoull() takes,
this will eliminate the compile warning on no 64-bit architectures.

Fixes: f7b88631a8 ("fs/libfs.c: fix simple_attr_write() on 32bit machines")
Signed-off-by: Yicong Yang <yangyicong@hisilicon.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Link: https://lkml.kernel.org/r/1605341356-11872-1-git-send-email-yangyicong@hisilicon.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-11-24 13:03:05 +01:00
..
2020-11-10 10:23:59 +01:00
2020-01-29 10:24:34 +01:00
2019-08-06 18:29:38 +02:00
2020-10-29 09:05:43 +01:00
2020-08-21 11:02:08 +02:00
2017-11-30 08:39:04 +00:00
2020-08-26 10:29:05 +02:00
2019-03-13 14:04:52 -07:00
2020-11-18 18:26:28 +01:00
2018-12-21 14:11:31 +01:00
2020-04-02 17:20:27 +02:00
2018-02-17 13:21:15 +01:00
2017-06-14 15:06:01 +02:00