Author: trociny
Date: Sun Aug 19 08:16:13 2012
New Revision: 239383
URL: http://svn.freebsd.org/changeset/base/239383

Log:
  In ip6_ctloutput() guard inp_flags modifications with INP_WLOCK.
  
  MFC after:    2 weeks

Modified:
  head/sys/netinet6/ip6_output.c

Modified: head/sys/netinet6/ip6_output.c
==============================================================================
--- head/sys/netinet6/ip6_output.c      Sun Aug 19 08:15:32 2012        
(r239382)
+++ head/sys/netinet6/ip6_output.c      Sun Aug 19 08:16:13 2012        
(r239383)
@@ -1615,18 +1615,22 @@ ip6_ctloutput(struct socket *so, struct 
                                        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
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to