From 640e18a8e1f7af344479860b74a9231045e6123b Mon Sep 17 00:00:00 2001 From: hrs Date: Sat, 19 Sep 2015 23:27:22 +0000 Subject: - 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 --- usr.sbin/inetd/inetd.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'usr.sbin/inetd') 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 -- cgit v1.1