make it slightly more working.

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@20600 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2007-05-08 03:01:25 +00:00
parent 4323bc892c
commit 871b9cab4a

View File

@@ -276,13 +276,18 @@ kadm5_log_replay_create (kadm5_server_context *context,
memset(&ent, 0, sizeof(ent));
ret = krb5_data_alloc (&data, len);
if (ret)
if (ret) {
krb5_set_error_string(context->context, "out of memory");
return ret;
}
krb5_storage_read (sp, data.data, len);
ret = hdb_value2entry (context->context, &data, &ent.entry);
krb5_data_free(&data);
if (ret)
if (ret) {
krb5_set_error_string(context->context,
"Unmarshaling hdb entry failed");
return ret;
}
ret = context->db->hdb_store(context->context, context->db, 0, &ent);
hdb_free_entry (context->context, &ent);
return ret;
@@ -678,22 +683,19 @@ kadm5_log_replay_modify (kadm5_server_context *context,
if ((mask & KADM5_TL_DATA) && log_ent.entry.extensions) {
HDB_extensions *es = ent.entry.extensions;
if (ent.entry.extensions == NULL) {
ent.entry.extensions = calloc(1, sizeof(*ent.entry.extensions));
if (ent.entry.extensions == NULL)
goto out;
}
ent.entry.extensions = calloc(1, sizeof(*ent.entry.extensions));
if (ent.entry.extensions == NULL)
goto out;
ret = copy_HDB_extensions(es, ent.entry.extensions);
ret = copy_HDB_extensions(log_ent.entry.extensions,
ent.entry.extensions);
if (ret) {
free(ent.entry.extensions);
ent.entry.extensions = es;
goto out;
}
if (es) {
free_HDB_extensions(es);
free(es);
}
free_HDB_extensions(es);
free(es);
}
ret = context->db->hdb_store(context->context, context->db,
HDB_F_REPLACE, &ent);