diff options
author | Elena Reshetova | 2017-11-18 00:29:39 +0100 |
---|---|---|
committer | Linus Torvalds | 2017-11-18 01:10:03 +0100 |
commit | d4f0284a5969fd7809ec8df710eb10598b701638 (patch) | |
tree | a38d9b3bbf2722d859a374dbe2cf06a97fa13273 /include/asm-generic/kprobes.h | |
parent | nilfs2: fix race condition that causes file system corruption (diff) | |
download | kernel-qcow2-linux-d4f0284a5969fd7809ec8df710eb10598b701638.tar.gz kernel-qcow2-linux-d4f0284a5969fd7809ec8df710eb10598b701638.tar.xz kernel-qcow2-linux-d4f0284a5969fd7809ec8df710eb10598b701638.zip |
fs, nilfs: convert nilfs_root.count from atomic_t to refcount_t
atomic_t variables are currently used to implement reference counters
with the following properties:
- counter is initialized to 1 using atomic_set()
- a resource is freed upon counter reaching zero
- once counter reaches zero, its further
increments aren't allowed
- counter schema uses basic atomic operations
(set, inc, inc_not_zero, dec_and_test, etc.)
Such atomic variables should be converted to a newly provided refcount_t
type and API that prevents accidental counter overflows and underflows.
This is important since overflows and underflows can lead to
use-after-free situation and be exploitable.
The variable nilfs_root.count is used as pure reference counter.
Convert it to refcount_t and fix up the operations.
Link: http://lkml.kernel.org/r/1509367935-3086-3-git-send-email-konishi.ryusuke@lab.ntt.co.jp
Signed-off-by: Elena Reshetova <elena.reshetova@intel.com>
Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Suggested-by: Kees Cook <keescook@chromium.org>
Reviewed-by: David Windsor <dwindsor@gmail.com>
Reviewed-by: Hans Liljestrand <ishkamiel@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/asm-generic/kprobes.h')
0 files changed, 0 insertions, 0 deletions