diff options
| author | Yicong Yang <[email protected]> | 2020-11-22 06:17:19 +0000 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2020-11-22 18:48:22 +0000 |
| commit | 488dac0c9237647e9b8f788b6a342595bfa40bda (patch) | |
| tree | 23e382d2a5a9e47ba5045a23d57ec88df8e49030 /scripts/gcc-plugins/gcc-common.h | |
| parent | mm/userfaultfd: do not access vma->vm_mm after calling handle_userfault() (diff) | |
| download | kernel-488dac0c9237647e9b8f788b6a342595bfa40bda.tar.gz kernel-488dac0c9237647e9b8f788b6a342595bfa40bda.zip | |
libfs: fix error cast of negative value in simple_attr_write()
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: f7b88631a897 ("fs/libfs.c: fix simple_attr_write() on 32bit machines")
Signed-off-by: Yicong Yang <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Cc: Al Viro <[email protected]>
Link: https://lkml.kernel.org/r/[email protected]
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'scripts/gcc-plugins/gcc-common.h')
0 files changed, 0 insertions, 0 deletions
