mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-12-04 16:49:40 +00:00
In ip6_ctloutput() guard inp_flags modifications with INP_WLOCK.
MFC after: 2 weeks
This commit is contained in:
parent
9b9bfdcc30
commit
ab16a5bd08
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=239383
@ -1615,18 +1615,22 @@ ip6_ctloutput(struct socket *so, struct sockopt *sopt)
|
||||
break;
|
||||
#define OPTSET(bit) \
|
||||
do { \
|
||||
INP_WLOCK(in6p); \
|
||||
if (optval) \
|
||||
in6p->inp_flags |= (bit); \
|
||||
else \
|
||||
in6p->inp_flags &= ~(bit); \
|
||||
INP_WUNLOCK(in6p); \
|
||||
} while (/*CONSTCOND*/ 0)
|
||||
#define OPTSET2292(bit) \
|
||||
do { \
|
||||
INP_WLOCK(in6p); \
|
||||
in6p->inp_flags |= IN6P_RFC2292; \
|
||||
if (optval) \
|
||||
in6p->inp_flags |= (bit); \
|
||||
else \
|
||||
in6p->inp_flags &= ~(bit); \
|
||||
INP_WUNLOCK(in6p); \
|
||||
} while (/*CONSTCOND*/ 0)
|
||||
#define OPTBIT(bit) (in6p->inp_flags & (bit) ? 1 : 0)
|
||||
|
||||
@ -1880,6 +1884,7 @@ do { \
|
||||
if (error)
|
||||
break;
|
||||
|
||||
INP_WLOCK(in6p);
|
||||
switch (optval) {
|
||||
case IPV6_PORTRANGE_DEFAULT:
|
||||
in6p->inp_flags &= ~(INP_LOWPORT);
|
||||
@ -1900,6 +1905,7 @@ do { \
|
||||
error = EINVAL;
|
||||
break;
|
||||
}
|
||||
INP_WUNLOCK(in6p);
|
||||
break;
|
||||
|
||||
#ifdef IPSEC
|
||||
|
Loading…
Reference in New Issue
Block a user