diff --git a/usr.sbin/rpcbind/rpcbind.c b/usr.sbin/rpcbind/rpcbind.c --- a/usr.sbin/rpcbind/rpcbind.c +++ b/usr.sbin/rpcbind/rpcbind.c @@ -39,34 +39,38 @@ * */ -#include -#include -#include -#include +#include +#include +#include #include -#include #include #include +#include +#include #include +#include + #include #include #ifdef PORTMAP #include #endif #include + #include +#include +#include #include +#include #include +#include #include #include -#include #include -#include -#include -#include -#include #include -#include +#include +#include + #include "rpcbind.h" /* Global variables */ @@ -148,12 +152,15 @@ update_bound_sa(); + /* Ensure krpc is loaded */ + if (modfind("krpc") < 0 && kldload("krpc") < 0) + err(1, "krpc"); + /* Check that another rpcbind isn't already running. */ - if ((rpcbindlockfd = (open(RPCBINDDLOCK, - O_RDONLY|O_CREAT, 0444))) == -1) + if ((rpcbindlockfd = open(RPCBINDDLOCK, O_RDONLY|O_CREAT, 0444)) < 0) err(1, "%s", RPCBINDDLOCK); - if(flock(rpcbindlockfd, LOCK_EX|LOCK_NB) == -1 && errno == EWOULDBLOCK) + if (flock(rpcbindlockfd, LOCK_EX|LOCK_NB) != 0 && errno == EWOULDBLOCK) errx(1, "another rpcbind is already running. Aborting"); getrlimit(RLIMIT_NOFILE, &rl);