summaryrefslogtreecommitdiffstats
path: root/usr.sbin/inetd
diff options
context:
space:
mode:
authorhrs <hrs@FreeBSD.org>2015-09-19 23:27:22 +0000
committerhrs <hrs@FreeBSD.org>2015-09-19 23:27:22 +0000
commit640e18a8e1f7af344479860b74a9231045e6123b (patch)
tree2b22cf28e33536dce76d708eacb78a6da9366c33 /usr.sbin/inetd
parentb76aba50082143fbcb47fa56a6c70fbbb604965a (diff)
downloadFreeBSD-src-640e18a8e1f7af344479860b74a9231045e6123b.zip
FreeBSD-src-640e18a8e1f7af344479860b74a9231045e6123b.tar.gz
- Fix a crash on a rpc entry when an IPv6 address is explicitly specified
in -a flag. - Fix a bug that sockaddr_in was used where sockaddr_in6 should have been used. This was not actually harmful because offsetof(struct sockaddr_in, sin_port) is equal to offsetof(struct sockaddr_in6, sin6_port). MFC after: 1 day
Diffstat (limited to 'usr.sbin/inetd')
-rw-r--r--usr.sbin/inetd/inetd.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/usr.sbin/inetd/inetd.c b/usr.sbin/inetd/inetd.c
index 178cb58..3932a15 100644
--- a/usr.sbin/inetd/inetd.c
+++ b/usr.sbin/inetd/inetd.c
@@ -1752,8 +1752,6 @@ more:
memmove(sep->se_proto, sep->se_proto + 4,
strlen(sep->se_proto) + 1 - 4);
sep->se_rpc = 1;
- memcpy(&sep->se_ctrladdr4, bind_sa4,
- sizeof(sep->se_ctrladdr4));
sep->se_rpc_prog = sep->se_rpc_lowvers =
sep->se_rpc_highvers = 0;
if ((versp = strrchr(sep->se_service, '/'))) {
@@ -2130,8 +2128,8 @@ check_loop(const struct sockaddr *sa, const struct servtab *sep)
continue;
#ifdef INET6
case AF_INET6:
- if (((const struct sockaddr_in *)sa)->sin_port ==
- se2->se_ctrladdr4.sin_port)
+ if (((const struct sockaddr_in6 *)sa)->sin6_port ==
+ se2->se_ctrladdr6.sin6_port)
goto isloop;
continue;
#endif
OpenPOWER on IntegriCloud