cvs commit: src/sys/netinet6 in6_pcb.c

Robert Watson rwatson at FreeBSD.org
Sat Jun 12 21:00:30 GMT 2004


rwatson     2004-06-12 20:59:48 UTC

  FreeBSD src repository

  Modified files:
    sys/netinet6         in6_pcb.c 
  Log:
  Missed directory in previous commit; need to hold SOCK_LOCK(so)
  before calling sotryfree().
  
  -- Body of earlier bulk commit this belonged with --
  
    Log:
    Extend coverage of SOCK_LOCK(so) to include so_count, the socket
    reference count:
  
    - Assert SOCK_LOCK(so) macros that directly manipulate so_count:
      soref(), sorele().
  
    - Assert SOCK_LOCK(so) in macros/functions that rely on the state of
      so_count: sofree(), sotryfree().
  
    - Acquire SOCK_LOCK(so) before calling these functions or macros in
      various contexts in the stack, both at the socket and protocol
      layers.
  
    - In some cases, perform soisdisconnected() before sotryfree(), as
      this could result in frobbing of a non-present socket if
      sotryfree() actually frees the socket.
  
    - Note that sofree()/sotryfree() will release the socket lock even if
      they don't free the socket.
  
    Submitted by:   sam
    Sponsored by:   FreeBSD Foundation
    Obtained from:  BSD/OS
  
  Revision  Changes    Path
  1.52      +1 -0      src/sys/netinet6/in6_pcb.c


More information about the cvs-src mailing list