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 <ifaddrs.h>
 #include <sys/poll.h>
 #include <rpc/rpc.h>
+#include <err.h>
 #include <errno.h>
 #include <stdlib.h>
 #include <string.h>
@@ -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
 
