diff options
author | Elena Reshetova <elena.reshetova@intel.com> | 2017-03-17 14:10:29 +0200 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2017-05-04 09:19:19 +0200 |
commit | 0e1a5ee6577e43e5be55369d398107080b360941 (patch) | |
tree | cb477c8e45675979e72a53013290e69e462f9ef1 /net/ceph | |
parent | 02113a0f14e20bd8e675d7cec16db6eaaf2b2380 (diff) | |
download | linux-rpi-0e1a5ee6577e43e5be55369d398107080b360941.tar.gz linux-rpi-0e1a5ee6577e43e5be55369d398107080b360941.tar.bz2 linux-rpi-0e1a5ee6577e43e5be55369d398107080b360941.zip |
libceph: convert ceph_pagelist.refcnt from atomic_t to refcount_t
refcount_t type and corresponding API should be
used instead of atomic_t when the variable is used as
a reference counter. This allows to avoid accidental
refcounter overflows that might lead to use-after-free
situations.
Signed-off-by: Elena Reshetova <elena.reshetova@intel.com>
Signed-off-by: Hans Liljestrand <ishkamiel@gmail.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: David Windsor <dwindsor@gmail.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'net/ceph')
-rw-r--r-- | net/ceph/pagelist.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ceph/pagelist.c b/net/ceph/pagelist.c index 6864007e64fc..ce09f73be759 100644 --- a/net/ceph/pagelist.c +++ b/net/ceph/pagelist.c @@ -16,7 +16,7 @@ static void ceph_pagelist_unmap_tail(struct ceph_pagelist *pl) void ceph_pagelist_release(struct ceph_pagelist *pl) { - if (!atomic_dec_and_test(&pl->refcnt)) + if (!refcount_dec_and_test(&pl->refcnt)) return; ceph_pagelist_unmap_tail(pl); while (!list_empty(&pl->head)) { |