diff options
author | andre <andre@FreeBSD.org> | 2003-11-26 20:31:13 +0000 |
---|---|---|
committer | andre <andre@FreeBSD.org> | 2003-11-26 20:31:13 +0000 |
commit | 4a037b3dd4b704250886ced57a0ab6d97411e694 (patch) | |
tree | ed37fabeb3faa7279dd548d1d6a2325900b034ef /sys/netinet | |
parent | de5ea0895c09169faa73049888b11e02ce9db310 (diff) | |
download | FreeBSD-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/netinet')
-rw-r--r-- | sys/netinet/in_pcb.c | 3 | ||||
-rw-r--r-- | sys/netinet/ip_input.c | 4 | ||||
-rw-r--r-- | sys/netinet/tcp_subr.c | 4 | ||||
-rw-r--r-- | sys/netinet/tcp_timewait.c | 4 |
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); |