summaryrefslogtreecommitdiff
path: root/usr.sbin/dev_mkdb/dev_mkdb.c
diff options
context:
space:
mode:
authormanu <manu@NetBSD.org>2001-07-13 15:54:22 +0000
committermanu <manu@NetBSD.org>2001-07-13 15:54:22 +0000
commit2e20a48c80c5516eafcaa7ff322988eccfa112a6 (patch)
treecf55c98a9497d136fa323e53e5cc1e1e4b693d9a /usr.sbin/dev_mkdb/dev_mkdb.c
parent340af7db820393f557ddb2266aca6ff9a34b3b72 (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.c6
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);