summaryrefslogtreecommitdiff
path: root/usr.sbin/dev_mkdb/dev_mkdb.c
diff options
context:
space:
mode:
authormanu <manu@NetBSD.org>2001-07-14 14:50:44 +0000
committermanu <manu@NetBSD.org>2001-07-14 14:50:44 +0000
commit3ac4f70df5b0ce14367dee3667751cf7f9c3d679 (patch)
treeca9f557c50a2dc790a57f81370cd56530c53c4e1 /usr.sbin/dev_mkdb/dev_mkdb.c
parent8468d6d854b709b9a157400a77ff8e7c9e396f0a (diff)
errno is not tested any more if dbopen succeeds (to quote errno(2), "It
should only be examined after an error") Added an additionnal chdir so that -o works with a file in the current directory.
Diffstat (limited to 'usr.sbin/dev_mkdb/dev_mkdb.c')
-rw-r--r--usr.sbin/dev_mkdb/dev_mkdb.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/usr.sbin/dev_mkdb/dev_mkdb.c b/usr.sbin/dev_mkdb/dev_mkdb.c
index 2b485b58716..9f09ed67537 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.15 2001/07/13 15:54:22 manu Exp $ */
+/* $NetBSD: dev_mkdb.c,v 1.16 2001/07/14 14:50:44 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.15 2001/07/13 15:54:22 manu Exp $");
+__RCSID("$NetBSD: dev_mkdb.c,v 1.16 2001/07/14 14:50:44 manu Exp $");
#endif
#endif /* not lint */
@@ -122,6 +122,9 @@ main(argc, argv)
if (ftsp == NULL)
err(1, "fts_open: %s", path_dev);
+ if (chdir(cur_dir))
+ err(1, "%s", cur_dir);
+
if (dbname_arg)
strncpy(dbname, dbname_arg, MAXPATHLEN);
else
@@ -136,20 +139,15 @@ main(argc, argv)
* the loop on dbopen.
*/
(void)strncpy(dbtmp, dbname, MAXPATHLEN);
- q = rindex(dbtmp, '/');
+ q = dbtmp + strlen(dbtmp);
do {
(void)gettimeofday(&tv, NULL);
- if (q) {
- (void)snprintf(q, MAXPATHLEN - (long)(q - dbtmp),
- "%s.%ld.tmp", q, tv.tv_usec);
- } else {
- (void)snprintf(dbtmp, MAXPATHLEN, "./%s.%ld.tmp",
- dbname, tv.tv_usec);
- }
- errno = 0;
+ (void)snprintf(q, MAXPATHLEN - (long)(q - dbtmp),
+ "%ld.tmp", tv.tv_usec);
+ printf (">>%s<<\n", dbtmp);
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);
+ } while (!db && (errno == EEXIST));
if (db == NULL)
err(1, "%s", dbtmp);
@@ -180,6 +178,7 @@ main(argc, argv)
else
continue;
bkey.dev = st->st_rdev;
+ printf (">>>%d\n", bkey.dev);
/*
* Create the data; nul terminate the name so caller doesn't
@@ -193,6 +192,7 @@ main(argc, argv)
}
(void)(*db->close)(db);
fts_close(ftsp);
+
if (chdir(cur_dir))
err(1, "%s", cur_dir);
if (rename(dbtmp, dbname))