Index: usr.sbin/rpcbind/util.c =================================================================== --- usr.sbin/rpcbind/util.c (revision 300945) +++ usr.sbin/rpcbind/util.c (working copy) @@ -40,6 +40,7 @@ #include #include #include +#include #include #include #include @@ -363,13 +364,20 @@ return; mreq6.ipv6mr_interface = 0; - inet_pton(AF_INET6, RPCB_MULTICAST_ADDR, &mreq6.ipv6mr_multiaddr); + ecode = inet_pton(AF_INET6, RPCB_MULTICAST_ADDR, + &mreq6.ipv6mr_multiaddr); + if (ecode != 1) { + if (debugging) + fprintf(stderr, "inet_pton failed with rc=%d: %s", + ecode, strerror(errno)); + goto done_inet6; + } s = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP); if (s == -1) { if (debugging) fprintf(stderr, "couldn't create ip6 socket"); - exit(1); + goto done_inet6; } /* @@ -392,6 +400,7 @@ if (debugging) perror("setsockopt v6 multicast"); } +done_inet6: freeifaddrs(ifp); #endif