aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/hyperv
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/hyperv')
-rw-r--r--sys/dev/hyperv/hvsock/hv_sock.c7
-rw-r--r--sys/dev/hyperv/hvsock/hv_sock.h2
2 files changed, 4 insertions, 5 deletions
diff --git a/sys/dev/hyperv/hvsock/hv_sock.c b/sys/dev/hyperv/hvsock/hv_sock.c
index 60cdfecf3bee..655cc990876e 100644
--- a/sys/dev/hyperv/hvsock/hv_sock.c
+++ b/sys/dev/hyperv/hvsock/hv_sock.c
@@ -478,7 +478,7 @@ hvs_trans_listen(struct socket *so, int backlog, struct thread *td)
}
int
-hvs_trans_accept(struct socket *so, struct sockaddr **nam)
+hvs_trans_accept(struct socket *so, struct sockaddr *sa)
{
struct hvs_pcb *pcb = so2hvspcb(so);
@@ -488,10 +488,9 @@ hvs_trans_accept(struct socket *so, struct sockaddr **nam)
if (pcb == NULL)
return (EINVAL);
- *nam = sodupsockaddr((struct sockaddr *) &pcb->remote_addr,
- M_NOWAIT);
+ memcpy(sa, &pcb->remote_addr, pcb->remote_addr.sa_len);
- return ((*nam == NULL) ? ENOMEM : 0);
+ return (0);
}
int
diff --git a/sys/dev/hyperv/hvsock/hv_sock.h b/sys/dev/hyperv/hvsock/hv_sock.h
index 98a9afb747bf..ee6416a29662 100644
--- a/sys/dev/hyperv/hvsock/hv_sock.h
+++ b/sys/dev/hyperv/hvsock/hv_sock.h
@@ -100,7 +100,7 @@ void hvs_trans_abort(struct socket *);
int hvs_trans_attach(struct socket *, int, struct thread *);
int hvs_trans_bind(struct socket *, struct sockaddr *, struct thread *);
int hvs_trans_listen(struct socket *, int, struct thread *);
-int hvs_trans_accept(struct socket *, struct sockaddr **);
+int hvs_trans_accept(struct socket *, struct sockaddr *);
int hvs_trans_connect(struct socket *,
struct sockaddr *, struct thread *);
int hvs_trans_peeraddr(struct socket *, struct sockaddr **);