summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/fs/portalfs/portal_vnops.c3
-rw-r--r--sys/kern/uipc_sockbuf.c7
-rw-r--r--sys/kern/uipc_socket.c6
-rw-r--r--sys/kern/uipc_socket2.c7
-rw-r--r--sys/kern/uipc_usrreq.c26
-rw-r--r--sys/net/raw_usrreq.c5
-rw-r--r--sys/netatalk/ddp_pcb.c2
-rw-r--r--sys/netatalk/ddp_usrreq.c2
-rw-r--r--sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c2
-rw-r--r--sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c4
-rw-r--r--sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c4
-rw-r--r--sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c4
-rw-r--r--sys/netipx/ipx_pcb.c4
-rw-r--r--sys/netipx/spx_usrreq.c2
-rw-r--r--sys/netnatm/natm.c2
-rw-r--r--sys/netsmb/smb_conn.c4
-rw-r--r--sys/netsmb/smb_trantcp.c4
-rw-r--r--sys/nfsclient/nfs_vfsops.c2
-rw-r--r--sys/nfsserver/nfs_srvcache.c4
-rw-r--r--sys/sys/socketvar.h2
20 files changed, 48 insertions, 48 deletions
diff --git a/sys/fs/portalfs/portal_vnops.c b/sys/fs/portalfs/portal_vnops.c
index 397f669..a8c31c8 100644
--- a/sys/fs/portalfs/portal_vnops.c
+++ b/sys/fs/portalfs/portal_vnops.c
@@ -199,7 +199,8 @@ portal_connect(so, so2)
unp3 = sotounpcb(so3);
if (unp2->unp_addr)
unp3->unp_addr = (struct sockaddr_un *)
- dup_sockaddr((struct sockaddr *)unp2->unp_addr, 0);
+ sodupsockaddr((struct sockaddr *)unp2->unp_addr,
+ M_NOWAIT);
so2 = so3;
return (unp_connect2(so, so2));
diff --git a/sys/kern/uipc_sockbuf.c b/sys/kern/uipc_sockbuf.c
index 16ee01e..ca2752e 100644
--- a/sys/kern/uipc_sockbuf.c
+++ b/sys/kern/uipc_sockbuf.c
@@ -1061,14 +1061,11 @@ pru_sosetlabel_null(struct socket *so)
* Make a copy of a sockaddr in a malloced buffer of type M_SONAME.
*/
struct sockaddr *
-dup_sockaddr(sa, canwait)
- struct sockaddr *sa;
- int canwait;
+sodupsockaddr(const struct sockaddr *sa, int mflags)
{
struct sockaddr *sa2;
- MALLOC(sa2, struct sockaddr *, sa->sa_len, M_SONAME,
- canwait ? M_WAITOK : M_NOWAIT);
+ sa2 = malloc(sa->sa_len, M_SONAME, mflags);
if (sa2)
bcopy(sa, sa2, sa->sa_len);
return sa2;
diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c
index 70ef43a..8bd487d 100644
--- a/sys/kern/uipc_socket.c
+++ b/sys/kern/uipc_socket.c
@@ -138,7 +138,7 @@ soalloc(int mflags)
so = uma_zalloc(socket_zone, mflags | M_ZERO);
if (so) {
#ifdef MAC
- error = mac_init_socket(so, mflags | M_ZERO);
+ error = mac_init_socket(so, mflags);
if (error != 0) {
uma_zfree(socket_zone, so);
so = NULL;
@@ -908,8 +908,8 @@ dontblock:
("m->m_type == %d", m->m_type));
orig_resid = 0;
if (psa)
- *psa = dup_sockaddr(mtod(m, struct sockaddr *),
- mp0 == 0);
+ *psa = sodupsockaddr(mtod(m, struct sockaddr *),
+ mp0 == NULL ? M_WAITOK : M_NOWAIT);
if (flags & MSG_PEEK) {
m = m->m_next;
} else {
diff --git a/sys/kern/uipc_socket2.c b/sys/kern/uipc_socket2.c
index 16ee01e..ca2752e 100644
--- a/sys/kern/uipc_socket2.c
+++ b/sys/kern/uipc_socket2.c
@@ -1061,14 +1061,11 @@ pru_sosetlabel_null(struct socket *so)
* Make a copy of a sockaddr in a malloced buffer of type M_SONAME.
*/
struct sockaddr *
-dup_sockaddr(sa, canwait)
- struct sockaddr *sa;
- int canwait;
+sodupsockaddr(const struct sockaddr *sa, int mflags)
{
struct sockaddr *sa2;
- MALLOC(sa2, struct sockaddr *, sa->sa_len, M_SONAME,
- canwait ? M_WAITOK : M_NOWAIT);
+ sa2 = malloc(sa->sa_len, M_SONAME, mflags);
if (sa2)
bcopy(sa, sa2, sa->sa_len);
return sa2;
diff --git a/sys/kern/uipc_usrreq.c b/sys/kern/uipc_usrreq.c
index f6a5ea2..dad644d 100644
--- a/sys/kern/uipc_usrreq.c
+++ b/sys/kern/uipc_usrreq.c
@@ -127,10 +127,11 @@ uipc_accept(struct socket *so, struct sockaddr **nam)
* (our peer may have closed already!).
*/
if (unp->unp_conn && unp->unp_conn->unp_addr) {
- *nam = dup_sockaddr((struct sockaddr *)unp->unp_conn->unp_addr,
- 1);
+ *nam = sodupsockaddr(
+ (struct sockaddr *)unp->unp_conn->unp_addr, M_WAITOK);
} else {
- *nam = dup_sockaddr((struct sockaddr *)&sun_noname, 1);
+ *nam = sodupsockaddr((struct sockaddr *)&sun_noname,
+ M_WAITOK);
}
return (0);
}
@@ -220,15 +221,16 @@ uipc_peeraddr(struct socket *so, struct sockaddr **nam)
if (unp == 0)
return (EINVAL);
if (unp->unp_conn && unp->unp_conn->unp_addr)
- *nam = dup_sockaddr((struct sockaddr *)unp->unp_conn->unp_addr,
- 1);
+ *nam = sodupsockaddr(
+ (struct sockaddr *)unp->unp_conn->unp_addr, M_WAITOK);
else {
/*
* XXX: It seems that this test always fails even when
* connection is established. So, this else clause is
* added as workaround to return PF_LOCAL sockaddr.
*/
- *nam = dup_sockaddr((struct sockaddr *)&sun_noname, 1);
+ *nam = sodupsockaddr((struct sockaddr *)&sun_noname,
+ M_WAITOK);
}
return (0);
}
@@ -441,9 +443,11 @@ uipc_sockaddr(struct socket *so, struct sockaddr **nam)
if (unp == 0)
return (EINVAL);
if (unp->unp_addr)
- *nam = dup_sockaddr((struct sockaddr *)unp->unp_addr, 1);
+ *nam = sodupsockaddr((struct sockaddr *)unp->unp_addr,
+ M_WAITOK);
else
- *nam = dup_sockaddr((struct sockaddr *)&sun_noname, 1);
+ *nam = sodupsockaddr((struct sockaddr *)&sun_noname,
+ M_WAITOK);
return (0);
}
@@ -665,7 +669,7 @@ restart:
vp = nd.ni_vp;
vp->v_socket = unp->unp_socket;
unp->unp_vnode = vp;
- unp->unp_addr = (struct sockaddr_un *)dup_sockaddr(nam, 1);
+ unp->unp_addr = (struct sockaddr_un *)sodupsockaddr(nam, M_WAITOK);
VOP_UNLOCK(vp, 0, td);
vn_finished_write(mp);
free(buf, M_TEMP);
@@ -724,8 +728,8 @@ unp_connect(so, nam, td)
unp3 = sotounpcb(so3);
if (unp2->unp_addr)
unp3->unp_addr = (struct sockaddr_un *)
- dup_sockaddr((struct sockaddr *)
- unp2->unp_addr, 1);
+ sodupsockaddr((struct sockaddr *)unp2->unp_addr,
+ M_WAITOK);
/*
* unp_peercred management:
diff --git a/sys/net/raw_usrreq.c b/sys/net/raw_usrreq.c
index 1f49959..2fff75c 100644
--- a/sys/net/raw_usrreq.c
+++ b/sys/net/raw_usrreq.c
@@ -36,6 +36,7 @@
#include <sys/param.h>
#include <sys/lock.h>
+#include <sys/malloc.h>
#include <sys/mbuf.h>
#include <sys/protosw.h>
#include <sys/signalvar.h>
@@ -216,7 +217,7 @@ raw_upeeraddr(struct socket *so, struct sockaddr **nam)
if (rp->rcb_faddr == 0) {
return ENOTCONN;
}
- *nam = dup_sockaddr(rp->rcb_faddr, 1);
+ *nam = sodupsockaddr(rp->rcb_faddr, M_WAITOK);
return 0;
}
@@ -286,7 +287,7 @@ raw_usockaddr(struct socket *so, struct sockaddr **nam)
return EINVAL;
if (rp->rcb_laddr == 0)
return EINVAL;
- *nam = dup_sockaddr(rp->rcb_laddr, 1);
+ *nam = sodupsockaddr(rp->rcb_laddr, M_WAITOK);
return 0;
}
diff --git a/sys/netatalk/ddp_pcb.c b/sys/netatalk/ddp_pcb.c
index 1b91a05..f548891 100644
--- a/sys/netatalk/ddp_pcb.c
+++ b/sys/netatalk/ddp_pcb.c
@@ -216,7 +216,7 @@ ddp_abort(struct socket *so)
static void
at_sockaddr(struct ddpcb *ddp, struct sockaddr **addr)
{
- *addr = dup_sockaddr((struct sockaddr *)&ddp->ddp_lsat, 0);
+ *addr = sodupsockaddr((struct sockaddr *)&ddp->ddp_lsat, M_NOWAIT);
}
static int
diff --git a/sys/netatalk/ddp_usrreq.c b/sys/netatalk/ddp_usrreq.c
index 1b91a05..f548891 100644
--- a/sys/netatalk/ddp_usrreq.c
+++ b/sys/netatalk/ddp_usrreq.c
@@ -216,7 +216,7 @@ ddp_abort(struct socket *so)
static void
at_sockaddr(struct ddpcb *ddp, struct sockaddr **addr)
{
- *addr = dup_sockaddr((struct sockaddr *)&ddp->ddp_lsat, 0);
+ *addr = sodupsockaddr((struct sockaddr *)&ddp->ddp_lsat, M_NOWAIT);
}
static int
diff --git a/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c b/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c
index dd46231..25495ba 100644
--- a/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c
+++ b/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c
@@ -1560,7 +1560,7 @@ ng_btsocket_hci_raw_sockaddr(struct socket *so, struct sockaddr **nam)
sa.hci_family = AF_BLUETOOTH;
strlcpy(sa.hci_node, pcb->addr.hci_node, sizeof(sa.hci_node));
- *nam = dup_sockaddr((struct sockaddr *) &sa, 0);
+ *nam = sodupsockaddr((struct sockaddr *) &sa, M_NOWAIT);
return ((*nam == NULL)? ENOMEM : 0);
} /* ng_btsocket_hci_raw_sockaddr */
diff --git a/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c b/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c
index f979966..380094a 100644
--- a/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c
+++ b/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c
@@ -2435,7 +2435,7 @@ ng_btsocket_l2cap_peeraddr(struct socket *so, struct sockaddr **nam)
sa.l2cap_len = sizeof(sa);
sa.l2cap_family = AF_BLUETOOTH;
- *nam = dup_sockaddr((struct sockaddr *) &sa, 0);
+ *nam = sodupsockaddr((struct sockaddr *) &sa, M_NOWAIT);
return ((*nam == NULL)? ENOMEM : 0);
} /* ng_btsocket_l2cap_peeraddr */
@@ -2588,7 +2588,7 @@ ng_btsocket_l2cap_sockaddr(struct socket *so, struct sockaddr **nam)
sa.l2cap_len = sizeof(sa);
sa.l2cap_family = AF_BLUETOOTH;
- *nam = dup_sockaddr((struct sockaddr *) &sa, 0);
+ *nam = sodupsockaddr((struct sockaddr *) &sa, M_NOWAIT);
return ((*nam == NULL)? ENOMEM : 0);
} /* ng_btsocket_l2cap_sockaddr */
diff --git a/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c b/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c
index 28287bb..3bbfe4ba 100644
--- a/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c
+++ b/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c
@@ -1180,7 +1180,7 @@ ng_btsocket_l2cap_raw_peeraddr(struct socket *so, struct sockaddr **nam)
sa.l2cap_len = sizeof(sa);
sa.l2cap_family = AF_BLUETOOTH;
- *nam = dup_sockaddr((struct sockaddr *) &sa, 0);
+ *nam = sodupsockaddr((struct sockaddr *) &sa, M_NOWAIT);
return ((*nam == NULL)? ENOMEM : 0);
} /* ng_btsocket_l2cap_raw_peeraddr */
@@ -1219,7 +1219,7 @@ ng_btsocket_l2cap_raw_sockaddr(struct socket *so, struct sockaddr **nam)
sa.l2cap_len = sizeof(sa);
sa.l2cap_family = AF_BLUETOOTH;
- *nam = dup_sockaddr((struct sockaddr *) &sa, 0);
+ *nam = sodupsockaddr((struct sockaddr *) &sa, M_NOWAIT);
return ((*nam == NULL)? ENOMEM : 0);
} /* ng_btsocket_l2cap_raw_sockaddr */
diff --git a/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c b/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c
index 8827210..5c20618 100644
--- a/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c
+++ b/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c
@@ -879,7 +879,7 @@ ng_btsocket_rfcomm_peeraddr(struct socket *so, struct sockaddr **nam)
sa.rfcomm_len = sizeof(sa);
sa.rfcomm_family = AF_BLUETOOTH;
- *nam = dup_sockaddr((struct sockaddr *) &sa, 0);
+ *nam = sodupsockaddr((struct sockaddr *) &sa, M_NOWAIT);
return ((*nam == NULL)? ENOMEM : 0);
} /* ng_btsocket_rfcomm_peeraddr */
@@ -945,7 +945,7 @@ ng_btsocket_rfcomm_sockaddr(struct socket *so, struct sockaddr **nam)
sa.rfcomm_len = sizeof(sa);
sa.rfcomm_family = AF_BLUETOOTH;
- *nam = dup_sockaddr((struct sockaddr *) &sa, 0);
+ *nam = sodupsockaddr((struct sockaddr *) &sa, M_NOWAIT);
return ((*nam == NULL)? ENOMEM : 0);
} /* ng_btsocket_rfcomm_sockaddr */
diff --git a/sys/netipx/ipx_pcb.c b/sys/netipx/ipx_pcb.c
index 0cd7880..f4f42f6 100644
--- a/sys/netipx/ipx_pcb.c
+++ b/sys/netipx/ipx_pcb.c
@@ -288,7 +288,7 @@ ipx_setsockaddr(ipxp, nam)
sipx->sipx_len = sizeof(*sipx);
sipx->sipx_family = AF_IPX;
sipx->sipx_addr = ipxp->ipxp_laddr;
- *nam = dup_sockaddr((struct sockaddr *)sipx, 0);
+ *nam = sodupsockaddr((struct sockaddr *)sipx, M_NOWAIT);
}
void
@@ -303,7 +303,7 @@ ipx_setpeeraddr(ipxp, nam)
sipx->sipx_len = sizeof(*sipx);
sipx->sipx_family = AF_IPX;
sipx->sipx_addr = ipxp->ipxp_faddr;
- *nam = dup_sockaddr((struct sockaddr *)sipx, 0);
+ *nam = sodupsockaddr((struct sockaddr *)sipx, M_NOWAIT);
}
/*
diff --git a/sys/netipx/spx_usrreq.c b/sys/netipx/spx_usrreq.c
index 1424754..ea47aba 100644
--- a/sys/netipx/spx_usrreq.c
+++ b/sys/netipx/spx_usrreq.c
@@ -1302,7 +1302,7 @@ spx_accept(so, nam)
sipx->sipx_len = sizeof *sipx;
sipx->sipx_family = AF_IPX;
sipx->sipx_addr = ipxp->ipxp_faddr;
- *nam = dup_sockaddr((struct sockaddr *)sipx, 0);
+ *nam = sodupsockaddr((struct sockaddr *)sipx, M_NOWAIT);
return (0);
}
diff --git a/sys/netnatm/natm.c b/sys/netnatm/natm.c
index c1f9850..c2ddd48 100644
--- a/sys/netnatm/natm.c
+++ b/sys/netnatm/natm.c
@@ -338,7 +338,7 @@ natm_usr_peeraddr(struct socket *so, struct sockaddr **nam)
sizeof(snatm->snatm_if));
snatm->snatm_vci = npcb->npcb_vci;
snatm->snatm_vpi = npcb->npcb_vpi;
- *nam = dup_sockaddr((struct sockaddr *)snatm, 0);
+ *nam = sodupsockaddr((struct sockaddr *)snatm, M_NOWAIT);
out:
splx(s);
diff --git a/sys/netsmb/smb_conn.c b/sys/netsmb/smb_conn.c
index 11d8a65..84d7087 100644
--- a/sys/netsmb/smb_conn.c
+++ b/sys/netsmb/smb_conn.c
@@ -419,10 +419,10 @@ smb_vc_create(struct smb_vcspec *vcspec,
smb_sl_init(&vcp->vc_stlock, "vcstlock");
error = ENOMEM;
- vcp->vc_paddr = dup_sockaddr(vcspec->sap, 1);
+ vcp->vc_paddr = sodupsockaddr(vcspec->sap, M_WAITOK);
if (vcp->vc_paddr == NULL)
goto fail;
- vcp->vc_laddr = dup_sockaddr(vcspec->lap, 1);
+ vcp->vc_laddr = sodupsockaddr(vcspec->lap, M_WAITOK);
if (vcp->vc_laddr == NULL)
goto fail;
vcp->vc_pass = smb_strdup(vcspec->pass);
diff --git a/sys/netsmb/smb_trantcp.c b/sys/netsmb/smb_trantcp.c
index a8050cd..1832388 100644
--- a/sys/netsmb/smb_trantcp.c
+++ b/sys/netsmb/smb_trantcp.c
@@ -564,7 +564,7 @@ smb_nbst_bind(struct smb_vc *vcp, struct sockaddr *sap, struct thread *td)
slen = sap->sa_len;
if (slen < NB_MINSALEN)
break;
- snb = (struct sockaddr_nb*)dup_sockaddr(sap, 1);
+ snb = (struct sockaddr_nb*)sodupsockaddr(sap, M_WAITOK);
if (snb == NULL) {
error = ENOMEM;
break;
@@ -597,7 +597,7 @@ smb_nbst_connect(struct smb_vc *vcp, struct sockaddr *sap, struct thread *td)
free(nbp->nbp_paddr, M_SONAME);
nbp->nbp_paddr = NULL;
}
- snb = (struct sockaddr_nb*)dup_sockaddr(sap, 1);
+ snb = (struct sockaddr_nb*)sodupsockaddr(sap, M_WAITOK);
if (snb == NULL)
return ENOMEM;
nbp->nbp_paddr = snb;
diff --git a/sys/nfsclient/nfs_vfsops.c b/sys/nfsclient/nfs_vfsops.c
index 8970a9c..95e8069 100644
--- a/sys/nfsclient/nfs_vfsops.c
+++ b/sys/nfsclient/nfs_vfsops.c
@@ -503,7 +503,7 @@ nfs_mountdiskless(char *path, char *which, int mountflag,
mp->mnt_kern_flag = 0;
mp->mnt_flag = mountflag;
- nam = dup_sockaddr((struct sockaddr *)sin, 1);
+ nam = sodupsockaddr((struct sockaddr *)sin, M_WAITOK);
if ((error = mountnfs(args, mp, nam, which, path, vpp,
td->td_ucred)) != 0) {
printf("nfs_mountroot: mount %s on %s: %d", path, which, error);
diff --git a/sys/nfsserver/nfs_srvcache.c b/sys/nfsserver/nfs_srvcache.c
index 394fde7..0cfcef7 100644
--- a/sys/nfsserver/nfs_srvcache.c
+++ b/sys/nfsserver/nfs_srvcache.c
@@ -50,7 +50,7 @@ __FBSDID("$FreeBSD$");
#include <sys/systm.h>
#include <sys/mbuf.h>
#include <sys/socket.h>
-#include <sys/socketvar.h> /* for dup_sockaddr */
+#include <sys/socketvar.h> /* for sodupsockaddr */
#include <netinet/in.h>
#include <nfs/rpcv2.h>
@@ -244,7 +244,7 @@ loop:
/* case AF_ISO: */
default:
rp->rc_flag |= RC_NAM;
- rp->rc_nam = dup_sockaddr(nd->nd_nam, 1);
+ rp->rc_nam = sodupsockaddr(nd->nd_nam, M_WAITOK);
break;
};
rp->rc_proc = nd->nd_procnum;
diff --git a/sys/sys/socketvar.h b/sys/sys/socketvar.h
index b1b9e16..a687cc0 100644
--- a/sys/sys/socketvar.h
+++ b/sys/sys/socketvar.h
@@ -352,7 +352,6 @@ struct uio;
/*
* From uipc_socket and friends
*/
-struct sockaddr *dup_sockaddr(struct sockaddr *sa, int canwait);
int sockargs(struct mbuf **mp, caddr_t buf, int buflen, int type);
int getsockaddr(struct sockaddr **namp, caddr_t uaddr, size_t len);
void sbappend(struct sockbuf *sb, struct mbuf *m);
@@ -391,6 +390,7 @@ int socreate(int dom, struct socket **aso, int type, int proto,
struct ucred *cred, struct thread *td);
void sodealloc(struct socket *so);
int sodisconnect(struct socket *so);
+struct sockaddr *sodupsockaddr(const struct sockaddr *sa, int mflags);
void sofree(struct socket *so);
int sogetopt(struct socket *so, struct sockopt *sopt);
void sohasoutofband(struct socket *so);
OpenPOWER on IntegriCloud