diff options
author | Reshetova, Elena <elena.reshetova@intel.com> | 2017-07-04 15:53:24 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-07-04 22:35:18 +0100 |
commit | 6871584a5e493a9fa3ad330a73966908b082deac (patch) | |
tree | b748fdcf8572c718fb270788b1fcba2041b83c8c /include/net/sctp/auth.h | |
parent | 55eabed60a68e918abc44f6beb64f38cc008b29d (diff) | |
download | linux-stable-6871584a5e493a9fa3ad330a73966908b082deac.tar.gz linux-stable-6871584a5e493a9fa3ad330a73966908b082deac.tar.bz2 linux-stable-6871584a5e493a9fa3ad330a73966908b082deac.zip |
net, sctp: convert sctp_auth_bytes.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: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/sctp/auth.h')
-rw-r--r-- | include/net/sctp/auth.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/include/net/sctp/auth.h b/include/net/sctp/auth.h index 171244bd856f..e5c57d0a082d 100644 --- a/include/net/sctp/auth.h +++ b/include/net/sctp/auth.h @@ -31,6 +31,7 @@ #define __sctp_auth_h__ #include <linux/list.h> +#include <linux/refcount.h> struct sctp_endpoint; struct sctp_association; @@ -53,7 +54,7 @@ struct sctp_hmac { * over SCTP-AUTH */ struct sctp_auth_bytes { - atomic_t refcnt; + refcount_t refcnt; __u32 len; __u8 data[]; }; @@ -76,7 +77,7 @@ static inline void sctp_auth_key_hold(struct sctp_auth_bytes *key) if (!key) return; - atomic_inc(&key->refcnt); + refcount_inc(&key->refcnt); } void sctp_auth_key_put(struct sctp_auth_bytes *key); |