don't call ypdb_close() until after we're finished using data returned

by a previous ypdb_*() operation. seems to fix a problem noted in [bin/8064]
This commit is contained in:
lukem 1999-07-25 09:36:02 +00:00
parent 275da9fc4d
commit 7dc5b4fed5
2 changed files with 5 additions and 5 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: yppush.c,v 1.10 1999/01/11 22:40:01 kleink Exp $ */ /* $NetBSD: yppush.c,v 1.11 1999/07/25 09:36:02 lukem Exp $ */
/* /*
* *
@ -182,7 +182,6 @@ main(argc, argv)
datum.dptr = YP_LAST_KEY; datum.dptr = YP_LAST_KEY;
datum.dsize = YP_LAST_LEN; datum.dsize = YP_LAST_LEN;
datum = ypdb_fetch(ypdb, datum); datum = ypdb_fetch(ypdb, datum);
ypdb_close(ypdb);
if (datum.dptr == NULL) if (datum.dptr == NULL)
errx(1, errx(1,
"unable to fetch %s key: check database with 'makedbm -u'", "unable to fetch %s key: check database with 'makedbm -u'",
@ -196,6 +195,7 @@ main(argc, argv)
ypi.order = (ypi.order * 10) + *cp - '0'; ypi.order = (ypi.order * 10) + *cp - '0';
cp++; cp++;
} }
ypdb_close(ypdb);
if (verbo) if (verbo)
printf("pushing %s [order=%d] in domain %s\n", ypi.map, printf("pushing %s [order=%d] in domain %s\n", ypi.map,

View File

@ -1,4 +1,4 @@
/* $NetBSD: ypxfr.c,v 1.8 1999/01/22 02:38:05 thorpej Exp $ */ /* $NetBSD: ypxfr.c,v 1.9 1999/07/25 09:36:02 lukem Exp $ */
/* /*
* Copyright (c) 1994 Mats O Jansson <moj@stacken.kth.se> * Copyright (c) 1994 Mats O Jansson <moj@stacken.kth.se>
@ -33,7 +33,7 @@
#include <sys/cdefs.h> #include <sys/cdefs.h>
#ifndef lint #ifndef lint
__RCSID("$NetBSD: ypxfr.c,v 1.8 1999/01/22 02:38:05 thorpej Exp $"); __RCSID("$NetBSD: ypxfr.c,v 1.9 1999/07/25 09:36:02 lukem Exp $");
#endif #endif
#include <sys/types.h> #include <sys/types.h>
@ -348,7 +348,6 @@ get_local_ordernum(domain, map, lordernum)
k.dsize = YP_LAST_LEN; k.dsize = YP_LAST_LEN;
v = ypdb_fetch(db, k); v = ypdb_fetch(db, k);
ypdb_close(db);
if (v.dptr == NULL) if (v.dptr == NULL)
*lordernum = 0; *lordernum = 0;
@ -357,6 +356,7 @@ get_local_ordernum(domain, map, lordernum)
order[v.dsize] = '\0'; order[v.dsize] = '\0';
*lordernum = (u_int)atoi((char *)&order); *lordernum = (u_int)atoi((char *)&order);
} }
ypdb_close(db);
out: out:
if ((status == YPPUSH_NOMAP) || (status == YPPUSH_DBM)) { if ((status == YPPUSH_NOMAP) || (status == YPPUSH_DBM)) {