(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; krb5_error_code ret;
FILE *f; FILE *f;
HDB *db; HDB *db = NULL;
if(!local_flag) { if(!local_flag) {
krb5_warnx(context, "dump is only available in local (-l) mode"); 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 else
f = fopen(argv[0], "w"); f = fopen(argv[0], "w");
if(f == NULL) if(f == NULL) {
krb5_warn(context, errno, "%s", argv[0]); krb5_warn(context, errno, "open: %s", argv[0]);
goto out;
}
ret = db->hdb_open(context, db, O_RDONLY, 0600); ret = db->hdb_open(context, db, O_RDONLY, 0600);
if(ret) { if(ret) {
krb5_warn(context, ret, "hdb_open"); krb5_warn(context, ret, "hdb_open");
goto out; 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); db->hdb_close(context, db);
out: out:
if(f != stdout) if(f && f != stdout)
fclose(f); fclose(f);
return 0; return 0;
} }