Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/netinet/udp_usrreq.c,v retrieving revision 1.148.4.1 retrieving revision 1.149 diff -u -p -r1.148.4.1 -r1.149 --- src/sys/netinet/udp_usrreq.c 2006/11/18 21:39:37 1.148.4.1 +++ src/sys/netinet/udp_usrreq.c 2006/10/05 17:35:19 1.149 @@ -1,4 +1,4 @@ -/* $NetBSD: udp_usrreq.c,v 1.148.4.1 2006/11/18 21:39:37 ad Exp $ */ +/* $NetBSD: udp_usrreq.c,v 1.149 2006/10/05 17:35:19 tls Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -61,7 +61,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: udp_usrreq.c,v 1.148.4.1 2006/11/18 21:39:37 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: udp_usrreq.c,v 1.149 2006/10/05 17:35:19 tls Exp $"); #include "opt_inet.h" #include "opt_ipsec.h" @@ -139,7 +139,11 @@ __KERNEL_RCSID(0, "$NetBSD: udp_usrreq.c * UDP protocol implementation. * Per RFC 768, August, 1980. */ +#ifndef COMPAT_42 int udpcksum = 1; +#else +int udpcksum = 0; /* XXX */ +#endif int udp_do_loopback_cksum = 0; struct inpcbtable udbtable; @@ -173,9 +177,9 @@ static void udp_notify (struct inpcb *, int udbhashsize = UDBHASHSIZE; #ifdef MBUFTRACE -struct mowner udp_mowner = MOWNER_INIT("udp", ""); -struct mowner udp_rx_mowner = MOWNER_INIT("udp", "rx"); -struct mowner udp_tx_mowner = MOWNER_INIT("udp", "tx"); +struct mowner udp_mowner = { "udp" }; +struct mowner udp_rx_mowner = { "udp", "rx" }; +struct mowner udp_tx_mowner = { "udp", "tx" }; #endif #ifdef UDP_CSUM_COUNTERS @@ -995,8 +999,11 @@ udp_ctlinput(int cmd, struct sockaddr *s } int -udp_ctloutput(int op, struct socket *so, int level, int optname, - struct mbuf **mp) +udp_ctloutput(op, so, level, optname, mp) + int op; + struct socket *so; + int level, optname; + struct mbuf **mp; { int s; int error = 0; @@ -1027,6 +1034,7 @@ udp_ctloutput(int op, struct socket *so, default: error = EAFNOSUPPORT; goto end; + break; } @@ -1039,7 +1047,7 @@ udp_ctloutput(int op, struct socket *so, case UDP_ENCAP: if (m == NULL || m->m_len < sizeof (int)) { error = EINVAL; - break; + goto end; } switch(*mtod(m, int *)) { @@ -1060,21 +1068,21 @@ udp_ctloutput(int op, struct socket *so, #endif default: error = EINVAL; + goto end; break; } break; default: error = ENOPROTOOPT; + goto end; break; } - if (m != NULL) { - m_free(m); - } break; default: error = EINVAL; + goto end; break; } @@ -1413,8 +1421,11 @@ SYSCTL_SETUP(sysctl_net_inet_udp_setup, * -1 if an error occurent and m was freed */ static int -udp4_espinudp(struct mbuf **mp, int off, struct sockaddr *src, - struct socket *so) +udp4_espinudp(mp, off, src, so) + struct mbuf **mp; + int off; + struct sockaddr *src; + struct socket *so; { size_t len; caddr_t data;