diff -up nfs-utils-1.3.0/utils/nfsd/nfssvc.c.orig nfs-utils-1.3.0/utils/nfsd/nfssvc.c --- nfs-utils-1.3.0/utils/nfsd/nfssvc.c.orig 2017-10-05 11:34:15.701116069 -0400 +++ nfs-utils-1.3.0/utils/nfsd/nfssvc.c 2017-10-05 11:35:36.493684800 -0400 @@ -112,7 +112,7 @@ static int nfssvc_setfds(const struct addrinfo *hints, const char *node, const char *port) { int fd, on = 1, fac = L_ERROR; - int sockfd = -1, rc = 0; + int sockfd = -1, rc = 0, bounded = 0; struct addrinfo *addrhead = NULL, *addr; char *proto, *family; @@ -234,6 +234,8 @@ nfssvc_setfds(const struct addrinfo *hin rc = errno; goto error; } + bounded++; + close(fd); close(sockfd); sockfd = fd = -1; @@ -246,7 +248,7 @@ error: close(sockfd); if (addrhead) freeaddrinfo(addrhead); - return rc; + return (bounded ? 0 : rc); } int