diff options
| author | manu <manu@NetBSD.org> | 2001-07-13 15:54:22 +0000 |
|---|---|---|
| committer | manu <manu@NetBSD.org> | 2001-07-13 15:54:22 +0000 |
| commit | 2e20a48c80c5516eafcaa7ff322988eccfa112a6 (patch) | |
| tree | cf55c98a9497d136fa323e53e5cc1e1e4b693d9a /usr.sbin/dev_mkdb/dev_mkdb.c | |
| parent | 340af7db820393f557ddb2266aca6ff9a34b3b72 (diff) | |
Moved the errno=0 in the loop for opening the temp file. The problem was that
successful syscalls never set errno, and hence we could have had an inifinite
loop if the opening failed once and succeded on second attempt.
Diffstat (limited to 'usr.sbin/dev_mkdb/dev_mkdb.c')
| -rw-r--r-- | usr.sbin/dev_mkdb/dev_mkdb.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/usr.sbin/dev_mkdb/dev_mkdb.c b/usr.sbin/dev_mkdb/dev_mkdb.c index efa20a0e3fb..2b485b58716 100644 --- a/usr.sbin/dev_mkdb/dev_mkdb.c +++ b/usr.sbin/dev_mkdb/dev_mkdb.c @@ -1,4 +1,4 @@ -/* $NetBSD: dev_mkdb.c,v 1.14 2001/07/12 20:46:39 manu Exp $ */ +/* $NetBSD: dev_mkdb.c,v 1.15 2001/07/13 15:54:22 manu Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -43,7 +43,7 @@ __COPYRIGHT("@(#) Copyright (c) 1990, 1993\n\ #if 0 static char sccsid[] = "from: @(#)dev_mkdb.c 8.1 (Berkeley) 6/6/93"; #else -__RCSID("$NetBSD: dev_mkdb.c,v 1.14 2001/07/12 20:46:39 manu Exp $"); +__RCSID("$NetBSD: dev_mkdb.c,v 1.15 2001/07/13 15:54:22 manu Exp $"); #endif #endif /* not lint */ @@ -137,7 +137,6 @@ main(argc, argv) */ (void)strncpy(dbtmp, dbname, MAXPATHLEN); q = rindex(dbtmp, '/'); - errno = 0; do { (void)gettimeofday(&tv, NULL); if (q) { @@ -147,6 +146,7 @@ main(argc, argv) (void)snprintf(dbtmp, MAXPATHLEN, "./%s.%ld.tmp", dbname, tv.tv_usec); } + errno = 0; db = dbopen(dbtmp, O_CREAT|O_EXCL|O_EXLOCK|O_RDWR|O_TRUNC, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH, DB_HASH, NULL); } while (errno == EEXIST); |
