summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ypbind
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>2002-07-20 12:14:51 +0000
committerderaadt <deraadt@openbsd.org>2002-07-20 12:14:51 +0000
commit8ba2df70c0e898e20149f9d38ced54603e27e132 (patch)
tree4bca0f9fe3eb2c9b734123ed4dd70dd938e5260d /usr.sbin/ypbind
parentIf we call siop_intr manually, make sure it's protected by splbio. (diff)
downloadwireguard-openbsd-8ba2df70c0e898e20149f9d38ced54603e27e132.tar.xz
wireguard-openbsd-8ba2df70c0e898e20149f9d38ced54603e27e132.zip
try to make pingsock and rpcsock resv too
Diffstat (limited to 'usr.sbin/ypbind')
-rw-r--r--usr.sbin/ypbind/ypbind.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/usr.sbin/ypbind/ypbind.c b/usr.sbin/ypbind/ypbind.c
index fa020db4afb..05ec34f0d15 100644
--- a/usr.sbin/ypbind/ypbind.c
+++ b/usr.sbin/ypbind/ypbind.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ypbind.c,v 1.45 2002/06/29 07:32:15 deraadt Exp $ */
+/* $OpenBSD: ypbind.c,v 1.46 2002/07/20 12:14:51 deraadt Exp $ */
/*
* Copyright (c) 1997,1998 Theo de Raadt <deraadt@OpenBSD.org>
@@ -35,7 +35,7 @@
*/
#ifndef LINT
-static char rcsid[] = "$OpenBSD: ypbind.c,v 1.45 2002/06/29 07:32:15 deraadt Exp $";
+static char rcsid[] = "$OpenBSD: ypbind.c,v 1.46 2002/07/20 12:14:51 deraadt Exp $";
#endif
#include <sys/param.h>
@@ -441,6 +441,7 @@ main(int argc, char *argv[])
exit(1);
}
sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
+ sin.sin_port = 0;
if (bind(lsock, (struct sockaddr *)&sin, len) != 0) {
syslog(LOG_ERR, "cannot bind local udp: %m");
exit(1);
@@ -464,6 +465,7 @@ main(int argc, char *argv[])
exit(1);
}
sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
+ sin.sin_port = 0;
if (bind(lsock, (struct sockaddr *)&sin, len) == -1) {
syslog(LOG_ERR, "cannot bind udp: %m");
exit(1);
@@ -478,10 +480,21 @@ main(int argc, char *argv[])
perror("socket");
return -1;
}
+ memset(&sin, 0, sizeof sin);
+ sin.sin_family = AF_INET;
+ sin.sin_addr.s_addr = htonl(INADDR_ANY);
+ sin.sin_port = 0;
+ bindresvport(rpcsock, &sin);
+
if ((pingsock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) {
perror("socket");
return -1;
}
+ memset(&sin, 0, sizeof sin);
+ sin.sin_family = AF_INET;
+ sin.sin_addr.s_addr = htonl(INADDR_ANY);
+ sin.sin_port = 0;
+ bindresvport(pingsock, &sin);
fcntl(rpcsock, F_SETFL, fcntl(rpcsock, F_GETFL, 0) | FNDELAY);
fcntl(pingsock, F_SETFL, fcntl(pingsock, F_GETFL, 0) | FNDELAY);