(dump): handle errors

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@14518 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2005-01-19 17:09:56 +00:00
parent 4b0ec3a65a
commit bd913bb529

View File

@@ -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;
}