- Make sure that errno isn't modified before calling logerror() in error

conditions.
- Don't check for AF_INET6 when compiled without INET6 support.

PR:		bin/173930
Submitted by:	Garrett Cooper <yanegomi@gmail.com>
Approved by:	rstone (co-mentor)
MFC after:	1 week
This commit is contained in:
markj 2012-12-20 23:21:20 +00:00
parent f8816140af
commit 6edca3394d

View File

@ -1873,6 +1873,7 @@ cfline(const char *line, struct filed *f, const char *prog, const char *host)
pri = decode(buf, prioritynames);
if (pri < 0) {
errno = 0;
(void)snprintf(ebuf, sizeof ebuf,
"unknown priority name \"%s\"", buf);
logerror(ebuf);
@ -1901,6 +1902,7 @@ cfline(const char *line, struct filed *f, const char *prog, const char *host)
} else {
i = decode(buf, facilitynames);
if (i < 0) {
errno = 0;
(void)snprintf(ebuf, sizeof ebuf,
"unknown facility name \"%s\"",
buf);
@ -2687,6 +2689,7 @@ socksetup(int af, char *bindhostname)
logerror("socket");
continue;
}
#ifdef INET6
if (r->ai_family == AF_INET6) {
if (setsockopt(*s, IPPROTO_IPV6, IPV6_V6ONLY,
(char *)&on, sizeof (on)) < 0) {
@ -2695,6 +2698,7 @@ socksetup(int af, char *bindhostname)
continue;
}
}
#endif
if (setsockopt(*s, SOL_SOCKET, SO_REUSEADDR,
(char *)&on, sizeof (on)) < 0) {
logerror("setsockopt");
@ -2711,8 +2715,8 @@ socksetup(int af, char *bindhostname)
*/
if (!NoBind) {
if (bind(*s, r->ai_addr, r->ai_addrlen) < 0) {
close(*s);
logerror("bind");
close(*s);
continue;
}