From bd913bb5297c870fb73469b2a92b8c7c03ce4ecf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Wed, 19 Jan 2005 17:09:56 +0000 Subject: [PATCH] (dump): handle errors git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@14518 ec53bebd-3082-4978-b11e-865c3cabbd6b --- kadmin/dump.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/kadmin/dump.c b/kadmin/dump.c index 162537f7d..b7f88e5cc 100644 --- a/kadmin/dump.c +++ b/kadmin/dump.c @@ -44,7 +44,7 @@ dump(struct dump_options *opt, int argc, char **argv) { krb5_error_code ret; FILE *f; - HDB *db; + HDB *db = NULL; if(!local_flag) { krb5_warnx(context, "dump is only available in local (-l) mode"); @@ -58,18 +58,22 @@ dump(struct dump_options *opt, int argc, char **argv) else f = fopen(argv[0], "w"); - if(f == NULL) - krb5_warn(context, errno, "%s", argv[0]); + if(f == NULL) { + krb5_warn(context, errno, "open: %s", argv[0]); + goto out; + } ret = db->hdb_open(context, db, O_RDONLY, 0600); if(ret) { krb5_warn(context, ret, "hdb_open"); goto out; } - hdb_foreach(context, db, opt->decrypt_flag ? HDB_F_DECRYPT : 0, hdb_print_entry, f); + hdb_foreach(context, db, opt->decrypt_flag ? HDB_F_DECRYPT : 0, + hdb_print_entry, f); + db->hdb_close(context, db); out: - if(f != stdout) + if(f && f != stdout) fclose(f); return 0; }