If kdb5_util load (without -update) fails--say, due to an invalid dump
file--it calls krb5_db_destroy to destroy the temporary DB.
Unfortunately, this results in the destruction of the real DB instead.
Luckily, this bug only applies to krb5 1.9, which hasn't been released
yet. In krb5 1.8 the destroy operation fails before it does any damage.
ticket: 6815
version_fixed: 1.9
git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-9@24548
dc483132-0cff-0310-8789-
dd5450dbe970
{
krb5_error_code status = 0;
krb5_db2_context *db_ctx;
+ char *db_name;
if (k5db2_inited(context)) {
status = krb5_db2_fini(context);
return status;
db_ctx = context->dal_handle->db_context;
- return destroy_db(context, db_ctx->db_name);
+ db_name = gen_dbsuffix(db_ctx->db_name, db_ctx->tempdb ? "~" : "");
+ if (db_name == NULL)
+ return ENOMEM;
+ status = destroy_db(context, db_name);
+ free(db_name);
+ return status;
}
void *