summaryrefslogtreecommitdiffstats
path: root/sys/nfs
diff options
context:
space:
mode:
authorbluhm <bluhm@openbsd.org>2015-08-24 14:00:28 +0000
committerbluhm <bluhm@openbsd.org>2015-08-24 14:00:28 +0000
commit9c7945350d596b87caf3da22e5cdabd8b67cb09c (patch)
treea3d2db076d59036e1313e580c2cb6927abd562f1 /sys/nfs
parentMark up command arguments properly using Cm. (diff)
downloadwireguard-openbsd-9c7945350d596b87caf3da22e5cdabd8b67cb09c.tar.xz
wireguard-openbsd-9c7945350d596b87caf3da22e5cdabd8b67cb09c.zip
In kernel initialize struct sockaddr_in and sockaddr_in6 to zero
everywhere to avoid passing around pointers to uninitialized stack memory. While there, fix the call to in6_recoverscope() in fill_drlist(). OK deraadt@ mpi@
Diffstat (limited to 'sys/nfs')
-rw-r--r--sys/nfs/krpc_subr.c5
-rw-r--r--sys/nfs/nfs_socket.c5
2 files changed, 6 insertions, 4 deletions
diff --git a/sys/nfs/krpc_subr.c b/sys/nfs/krpc_subr.c
index eb3ab4c134c..eddad29015a 100644
--- a/sys/nfs/krpc_subr.c
+++ b/sys/nfs/krpc_subr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: krpc_subr.c,v 1.28 2015/07/15 22:16:42 deraadt Exp $ */
+/* $OpenBSD: krpc_subr.c,v 1.29 2015/08/24 14:00:29 bluhm Exp $ */
/* $NetBSD: krpc_subr.c,v 1.12.4.1 1996/06/07 00:52:26 cgd Exp $ */
/*
@@ -270,7 +270,8 @@ krpc_call(struct sockaddr_in *sa, u_int prog, u_int vers, u_int func,
MGET(m, M_WAIT, MT_SONAME);
sin = mtod(m, struct sockaddr_in *);
- sin->sin_len = m->m_len = sizeof (struct sockaddr_in);
+ memset(sin, 0, sizeof(*sin));
+ sin->sin_len = m->m_len = sizeof(struct sockaddr_in);
sin->sin_family = AF_INET;
sin->sin_addr.s_addr = INADDR_ANY;
sin->sin_port = htons(0);
diff --git a/sys/nfs/nfs_socket.c b/sys/nfs/nfs_socket.c
index a5a2a88cf75..168c70f7de7 100644
--- a/sys/nfs/nfs_socket.c
+++ b/sys/nfs/nfs_socket.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: nfs_socket.c,v 1.110 2015/07/15 22:16:42 deraadt Exp $ */
+/* $OpenBSD: nfs_socket.c,v 1.111 2015/08/24 14:00:29 bluhm Exp $ */
/* $NetBSD: nfs_socket.c,v 1.27 1996/04/15 20:20:00 thorpej Exp $ */
/*
@@ -258,7 +258,8 @@ nfs_connect(struct nfsmount *nmp, struct nfsreq *rep)
MGET(m, M_WAIT, MT_SONAME);
sin = mtod(m, struct sockaddr_in *);
- sin->sin_len = m->m_len = sizeof (struct sockaddr_in);
+ memset(sin, 0, sizeof(*sin));
+ sin->sin_len = m->m_len = sizeof(struct sockaddr_in);
sin->sin_family = AF_INET;
sin->sin_addr.s_addr = INADDR_ANY;
sin->sin_port = htons(0);