diff options
author | Reshetova, Elena <elena.reshetova@intel.com> | 2017-06-30 06:08:01 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-07-01 10:39:08 -0400 |
commit | 41c6d650f6537e55a1b53438c646fbc3f49176bf (patch) | |
tree | d7fb3d5a2f1b3fb0fe76fa010141be563488d36b /net/key | |
parent | 14afee4b6092fde451ee17604e5f5c89da33e71e (diff) |
net: convert sock.sk_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.
This patch uses refcount_inc_not_zero() instead of
atomic_inc_not_zero_hint() due to absense of a _hint()
version of refcount API. If the hint() version must
be used, we might need to revisit API.
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: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/key')
-rw-r--r-- | net/key/af_key.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/key/af_key.c b/net/key/af_key.c index e466579c18fa..edcf1d0f82c8 100644 --- a/net/key/af_key.c +++ b/net/key/af_key.c | |||
@@ -3739,7 +3739,7 @@ static int pfkey_seq_show(struct seq_file *f, void *v) | |||
3739 | else | 3739 | else |
3740 | seq_printf(f, "%pK %-6d %-6u %-6u %-6u %-6lu\n", | 3740 | seq_printf(f, "%pK %-6d %-6u %-6u %-6u %-6lu\n", |
3741 | s, | 3741 | s, |
3742 | atomic_read(&s->sk_refcnt), | 3742 | refcount_read(&s->sk_refcnt), |
3743 | sk_rmem_alloc_get(s), | 3743 | sk_rmem_alloc_get(s), |
3744 | sk_wmem_alloc_get(s), | 3744 | sk_wmem_alloc_get(s), |
3745 | from_kuid_munged(seq_user_ns(f), sock_i_uid(s)), | 3745 | from_kuid_munged(seq_user_ns(f), sock_i_uid(s)), |