Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Jun 2009 20:19:09 +0000 (UTC)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/contrib/rdma rdma_addr.c rdma_cma.c src/sys/net if.c route.c rtsock.c src/sys/net80211 ieee80211.c src/sys/netinet igmp.c in.c in_mcast.c in_pcb.c in_var.h ip_carp.c ip_divert.c ip_icmp.c ip_input.c ip_mroute.c ip_options.c ...
Message-ID:  <200906232025.n5NKPYfo056675@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
rwatson     2009-06-23 20:19:09 UTC

  FreeBSD src repository

  Modified files:
    sys/contrib/rdma     rdma_addr.c rdma_cma.c 
    sys/net              if.c route.c rtsock.c 
    sys/net80211         ieee80211.c 
    sys/netinet          igmp.c in.c in_mcast.c in_pcb.c in_var.h 
                         ip_carp.c ip_divert.c ip_icmp.c 
                         ip_input.c ip_mroute.c ip_options.c 
                         ip_output.c tcp_input.c 
    sys/netinet6         frag6.c icmp6.c in6.c in6_ifattach.c 
                         in6_pcb.c in6_src.c in6_var.h ip6_input.c 
                         ip6_output.c mld6.c nd6.c nd6_nbr.c 
                         nd6_rtr.c raw_ip6.c 
    sys/netipx           ipx_pcb.c 
  Log:
  SVN rev 194760 on 2009-06-23 20:19:09Z by rwatson
  
  Modify most routines returning 'struct ifaddr *' to return references
  rather than pointers, requiring callers to properly dispose of those
  references.  The following routines now return references:
  
    ifaddr_byindex
    ifa_ifwithaddr
    ifa_ifwithbroadaddr
    ifa_ifwithdstaddr
    ifa_ifwithnet
    ifaof_ifpforaddr
    ifa_ifwithroute
    ifa_ifwithroute_fib
    rt_getifa
    rt_getifa_fib
    IFP_TO_IA
    ip_rtaddr
    in6_ifawithifp
    in6ifa_ifpforlinklocal
    in6ifa_ifpwithaddr
    in6_ifadd
    carp_iamatch6
    ip6_getdstifaddr
  
  Remove unused macro which didn't have required referencing:
  
    IFP_TO_IA6
  
  This closes many small races in which changes to interface
  or address lists while an ifaddr was in use could lead to use of freed
  memory (etc).  In a few cases, add missing if_addr_list locking
  required to safely acquire references.
  
  Because of a lack of deep copying support, we accept a race in which
  an in6_ifaddr pointed to by mbuf tags and extracted with
  ip6_getdstifaddr() doesn't hold a reference while in transmit.  Once
  we have mbuf tag deep copy support, this can be fixed.
  
  Reviewed by:    bz
  Obtained from:  Apple, Inc. (portions)
  MFC after:      6 weeks (portions)
  
  Revision  Changes    Path
  1.3       +4 -1      src/sys/contrib/rdma/rdma_addr.c
  1.5       +1 -0      src/sys/contrib/rdma/rdma_cma.c
  1.347     +32 -11    src/sys/net/if.c
  1.162     +33 -9     src/sys/net/route.c
  1.178     +7 -0      src/sys/net/rtsock.c
  1.80      +1 -0      src/sys/net80211/ieee80211.c
  1.83      +17 -4     src/sys/netinet/igmp.c
  1.138     +50 -65    src/sys/netinet/in.c
  1.24      +1 -0      src/sys/netinet/in_mcast.c
  1.255     +8 -3      src/sys/netinet/in_pcb.c
  1.71      +10 -8     src/sys/netinet/in_var.h
  1.66      +1 -0      src/sys/netinet/ip_carp.c
  1.151     +1 -0      src/sys/netinet/ip_divert.c
  1.133     +6 -2      src/sys/netinet/ip_icmp.c
  1.365     +22 -4     src/sys/netinet/ip_input.c
  1.153     +1 -0      src/sys/netinet/ip_mroute.c
  1.19      +5 -3      src/sys/netinet/ip_options.c
  1.312     +3 -0      src/sys/netinet/ip_output.c
  1.407     +5 -1      src/sys/netinet/tcp_input.c
  1.46      +3 -1      src/sys/netinet6/frag6.c
  1.112     +9 -1      src/sys/netinet6/icmp6.c
  1.113     +86 -37    src/sys/netinet6/in6.c
  1.69      +10 -3     src/sys/netinet6/in6_ifattach.c
  1.115     +8 -4      src/sys/netinet6/in6_pcb.c
  1.68      +12 -1     src/sys/netinet6/in6_src.c
  1.40      +0 -19     src/sys/netinet6/in6_var.h
  1.126     +12 -3     src/sys/netinet6/ip6_input.c
  1.135     +1 -0      src/sys/netinet6/ip6_output.c
  1.51      +18 -3     src/sys/netinet6/mld6.c
  1.118     +7 -2      src/sys/netinet6/nd6.c
  1.65      +12 -2     src/sys/netinet6/nd6_nbr.c
  1.68      +28 -6     src/sys/netinet6/nd6_rtr.c
  1.107     +7 -4      src/sys/netinet6/raw_ip6.c
  1.53      +27 -7     src/sys/netipx/ipx_pcb.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906232025.n5NKPYfo056675>