summaryrefslogtreecommitdiffstats
path: root/usr.sbin/pwd_mkdb/pwd_mkdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/pwd_mkdb/pwd_mkdb.c')
-rw-r--r--usr.sbin/pwd_mkdb/pwd_mkdb.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/usr.sbin/pwd_mkdb/pwd_mkdb.c b/usr.sbin/pwd_mkdb/pwd_mkdb.c
index 5731aef..204a588 100644
--- a/usr.sbin/pwd_mkdb/pwd_mkdb.c
+++ b/usr.sbin/pwd_mkdb/pwd_mkdb.c
@@ -115,10 +115,10 @@ main(int argc, char *argv[])
char sbuf2[MAXPATHLEN];
char *username;
u_int method, methoduid;
- int Cflag;
+ int Cflag, dflag, iflag;
int nblock = 0;
- Cflag = 0;
+ iflag = dflag = Cflag = 0;
strcpy(prefix, _PATH_PWD);
makeold = 0;
username = NULL;
@@ -131,8 +131,12 @@ main(int argc, char *argv[])
nblock = LOCK_NB; /* will fail if locked */
break;
case 'd':
+ dflag++;
strlcpy(prefix, optarg, sizeof(prefix));
break;
+ case 'i':
+ iflag++;
+ break;
case 'p': /* create V7 "file.orig" */
makeold = 1;
break;
@@ -184,7 +188,7 @@ main(int argc, char *argv[])
if (!(fp = fopen(pname, "r")))
error(pname);
- if (flock(fileno(fp), LOCK_EX|nblock) < 0)
+ if (flock(fileno(fp), LOCK_EX|nblock) < 0 && !(dflag && iflag))
error("flock");
if (fstat(fileno(fp), &st) < 0)
error(pname);
@@ -752,6 +756,6 @@ usage()
{
(void)fprintf(stderr,
-"usage: pwd_mkdb [-C] [-N] [-p] [-d <dest dir>] [-s <cachesize>] [-u <local username>] file\n");
+"usage: pwd_mkdb [-C] [-N] [-i] [-p] [-d <dest dir>] [-s <cachesize>] [-u <local username>] file\n");
exit(1);
}
OpenPOWER on IntegriCloud