Author: rwatson
Date: Thu Jun  2 10:21:05 2011
New Revision: 222602
URL: http://svn.freebsd.org/changeset/base/222602

Log:
  Do not leak the pcbinfohash lock in the case where in6_pcbladdr() returns
  an error during TCP connect(2) on an IPv6 socket.
  
  Submitted by: bz
  Sponsored by: Juniper Networks, Inc.

Modified:
  head/sys/netinet/tcp_usrreq.c

Modified: head/sys/netinet/tcp_usrreq.c
==============================================================================
--- head/sys/netinet/tcp_usrreq.c       Thu Jun  2 10:18:49 2011        
(r222601)
+++ head/sys/netinet/tcp_usrreq.c       Thu Jun  2 10:21:05 2011        
(r222602)
@@ -1158,7 +1158,7 @@ tcp6_connect(struct tcpcb *tp, struct so
         */
        error = in6_pcbladdr(inp, nam, &addr6);
        if (error)
-               return error;
+               goto out;
        oinp = in6_pcblookup_hash_locked(inp->inp_pcbinfo,
                                  &sin6->sin6_addr, sin6->sin6_port,
                                  IN6_IS_ADDR_UNSPECIFIED(&inp->in6p_laddr)
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to