svn commit: r208767 - stable/8/sys/netinet
Robert Watson
rwatson at FreeBSD.org
Thu Jun 3 09:02:53 UTC 2010
Author: rwatson
Date: Thu Jun 3 09:02:53 2010
New Revision: 208767
URL: http://svn.freebsd.org/changeset/base/208767
Log:
Merge r204826 from head to stable/8:
Make udp_set_kernel_tunneling() less forgiving when its invariants are
violated: so_pcb can never be NULL for a valid UDP socket, and it is
always SOCK_DGRAM. Use sotoinpcb() as the rest of the UDP code does.
Reviewed by: bz
Sponsored by: Juniper Networks
Approved by: re (kib)
Modified:
stable/8/sys/netinet/udp_usrreq.c
Directory Properties:
stable/8/sys/ (props changed)
stable/8/sys/amd64/include/xen/ (props changed)
stable/8/sys/cddl/contrib/opensolaris/ (props changed)
stable/8/sys/contrib/dev/acpica/ (props changed)
stable/8/sys/contrib/pf/ (props changed)
stable/8/sys/dev/xen/xenpci/ (props changed)
stable/8/sys/geom/sched/ (props changed)
Modified: stable/8/sys/netinet/udp_usrreq.c
==============================================================================
--- stable/8/sys/netinet/udp_usrreq.c Thu Jun 3 08:55:45 2010 (r208766)
+++ stable/8/sys/netinet/udp_usrreq.c Thu Jun 3 09:02:53 2010 (r208767)
@@ -1439,7 +1439,7 @@ udp_attach(struct socket *so, int proto,
return (error);
}
- inp = (struct inpcb *)so->so_pcb;
+ inp = sotoinpcb(so);
inp->inp_vflag |= INP_IPV4;
inp->inp_ip_ttl = V_ip_defttl;
@@ -1462,17 +1462,10 @@ udp_set_kernel_tunneling(struct socket *
struct inpcb *inp;
struct udpcb *up;
- KASSERT(so->so_type == SOCK_DGRAM, ("udp_set_kernel_tunneling: !dgram"));
- KASSERT(so->so_pcb != NULL, ("udp_set_kernel_tunneling: NULL inp"));
- if (so->so_type != SOCK_DGRAM) {
- /* Not UDP socket... sorry! */
- return (ENOTSUP);
- }
- inp = (struct inpcb *)so->so_pcb;
- if (inp == NULL) {
- /* NULL INP? */
- return (EINVAL);
- }
+ KASSERT(so->so_type == SOCK_DGRAM,
+ ("udp_set_kernel_tunneling: !dgram"));
+ inp = sotoinpcb(so);
+ KASSERT(inp != NULL, ("udp_set_kernel_tunneling: inp == NULL"));
INP_WLOCK(inp);
up = intoudpcb(inp);
if (up->u_tun_func != NULL) {
More information about the svn-src-all
mailing list