summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorandre <andre@FreeBSD.org>2003-11-26 20:31:13 +0000
committerandre <andre@FreeBSD.org>2003-11-26 20:31:13 +0000
commit4a037b3dd4b704250886ced57a0ab6d97411e694 (patch)
treeed37fabeb3faa7279dd548d1d6a2325900b034ef /sys
parentde5ea0895c09169faa73049888b11e02ce9db310 (diff)
downloadFreeBSD-src-4a037b3dd4b704250886ced57a0ab6d97411e694.zip
FreeBSD-src-4a037b3dd4b704250886ced57a0ab6d97411e694.tar.gz
Make sure all uses of stack allocated struct route's are properly
zeroed. Doing a bzero on the entire struct route is not more expensive than assigning NULL to ro.ro_rt and bzero of ro.ro_dst. Reviewed by: sam (mentor) Approved by: re (scottl)
Diffstat (limited to 'sys')
-rw-r--r--sys/netinet/in_pcb.c3
-rw-r--r--sys/netinet/ip_input.c4
-rw-r--r--sys/netinet/tcp_subr.c4
-rw-r--r--sys/netinet/tcp_timewait.c4
4 files changed, 7 insertions, 8 deletions
diff --git a/sys/netinet/in_pcb.c b/sys/netinet/in_pcb.c
index 0b9181c..38b7b28 100644
--- a/sys/netinet/in_pcb.c
+++ b/sys/netinet/in_pcb.c
@@ -581,7 +581,7 @@ in_pcbconnect_setup(inp, nam, laddrp, lportp, faddrp, fportp, oinpp, td)
if (laddr.s_addr == INADDR_ANY) {
struct route sro;
- sro.ro_rt = NULL;
+ bzero(&sro, sizeof(sro));
ia = (struct in_ifaddr *)0;
/*
* If route is known our src addr is taken from the i/f,
@@ -589,7 +589,6 @@ in_pcbconnect_setup(inp, nam, laddrp, lportp, faddrp, fportp, oinpp, td)
*/
if ((inp->inp_socket->so_options & SO_DONTROUTE) == 0) {
/* Find out route to destination */
- bzero(&sro.ro_dst, sizeof(struct sockaddr_in));
sro.ro_dst.sa_family = AF_INET;
sro.ro_dst.sa_len = sizeof(struct sockaddr_in);
((struct sockaddr_in *)&sro.ro_dst)->sin_addr = faddr;
diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c
index 3d528f4..bb4271e 100644
--- a/sys/netinet/ip_input.c
+++ b/sys/netinet/ip_input.c
@@ -1616,7 +1616,7 @@ ip_rtaddr(dst)
struct sockaddr_in *sin;
struct in_ifaddr *ifa;
- sro.ro_rt = NULL;
+ bzero(&sro, sizeof(sro));
sin = (struct sockaddr_in *)&sro.ro_dst;
sin->sin_family = AF_INET;
sin->sin_len = sizeof(*sin);
@@ -1879,7 +1879,7 @@ ip_forward(struct mbuf *m, int srcrt, struct sockaddr_in *next_hop)
struct route ro;
struct rtentry *rt;
- ro.ro_rt = NULL;
+ bzero(&ro, sizeof(ro));
sin = (struct sockaddr_in *)&ro.ro_dst;
sin->sin_family = AF_INET;
sin->sin_len = sizeof(*sin);
diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c
index dfd6de1..926d547 100644
--- a/sys/netinet/tcp_subr.c
+++ b/sys/netinet/tcp_subr.c
@@ -1409,7 +1409,7 @@ tcp_maxmtu(inc)
KASSERT(inc != NULL, ("tcp_maxmtu with NULL in_conninfo pointer"));
- sro.ro_rt = NULL;
+ bzero(&sro, sizeof(sro));
if (inc->inc_faddr.s_addr != INADDR_ANY) {
dst = (struct sockaddr_in *)&sro.ro_dst;
dst->sin_family = AF_INET;
@@ -1439,7 +1439,7 @@ tcp_maxmtu6(inc)
KASSERT(inc != NULL, ("tcp_maxmtu6 with NULL in_conninfo pointer"));
- sro6.ro_rt = NULL;
+ bzero(&sro6, sizeof(sro6));
if (!IN6_IS_ADDR_UNSPECIFIED(&inc->inc6_faddr)) {
sro6.ro_dst.sin6_family = AF_INET6;
sro6.ro_dst.sin6_len = sizeof(struct sockaddr_in6);
diff --git a/sys/netinet/tcp_timewait.c b/sys/netinet/tcp_timewait.c
index dfd6de1..926d547 100644
--- a/sys/netinet/tcp_timewait.c
+++ b/sys/netinet/tcp_timewait.c
@@ -1409,7 +1409,7 @@ tcp_maxmtu(inc)
KASSERT(inc != NULL, ("tcp_maxmtu with NULL in_conninfo pointer"));
- sro.ro_rt = NULL;
+ bzero(&sro, sizeof(sro));
if (inc->inc_faddr.s_addr != INADDR_ANY) {
dst = (struct sockaddr_in *)&sro.ro_dst;
dst->sin_family = AF_INET;
@@ -1439,7 +1439,7 @@ tcp_maxmtu6(inc)
KASSERT(inc != NULL, ("tcp_maxmtu6 with NULL in_conninfo pointer"));
- sro6.ro_rt = NULL;
+ bzero(&sro6, sizeof(sro6));
if (!IN6_IS_ADDR_UNSPECIFIED(&inc->inc6_faddr)) {
sro6.ro_dst.sin6_family = AF_INET6;
sro6.ro_dst.sin6_len = sizeof(struct sockaddr_in6);
OpenPOWER on IntegriCloud