inetd: free WITHOUT_INET6_SUPPORT build of warnings

If inetd is compiled without inet6 support, we need to error out on
rpc+inet6 services rather than attempting to call into rpc bits with an
uninitialized netid.

v4bind is only used with INET6 support, so move it under the proper #ifdefs
with v6bind.

Reported by:	Pavel Timofeev <timp87 gmail com>
MFC after:	3 days
This commit is contained in:
Kyle Evans 2020-01-10 14:40:04 +00:00
parent 3898f9bdb3
commit 36cac5570f

View File

@ -1360,6 +1360,15 @@ setsockopt(fd, SOL_SOCKET, opt, (char *)&on, sizeof (on))
sock.sin_port = sep->se_ctrladdr6.sin6_port;
}
}
#else
else {
syslog(LOG_ERR,
"%s/%s: inetd compiled without inet6 support\n",
sep->se_service, sep->se_proto);
(void) close(sep->se_fd);
sep->se_fd = -1;
return;
}
#endif
if (debug)
print_service("REG ", sep);
@ -1611,8 +1620,8 @@ getconfigent(void)
#ifdef IPSEC
char *policy;
#endif
int v4bind;
#ifdef INET6
int v4bind;
int v6bind;
#endif
int i;
@ -1622,8 +1631,8 @@ getconfigent(void)
policy = NULL;
#endif
more:
v4bind = 0;
#ifdef INET6
v4bind = 0;
v6bind = 0;
#endif
while ((cp = nextline(fconfig)) != NULL) {
@ -1787,7 +1796,9 @@ getconfigent(void)
#endif
if (sep->se_proto[strlen(sep->se_proto) - 1] == '4') {
sep->se_proto[strlen(sep->se_proto) - 1] = '\0';
#ifdef INET6
v4bind = 1;
#endif
continue;
}
/* illegal version num */