kadm5_create_policy(void *server_handle, kadm5_policy_ent_t entry, long mask)
{
kadm5_server_handle_t handle = server_handle;
- osa_policy_ent_rec pent;
+ osa_policy_ent_rec pent, *check_pol;
int ret;
char *p;
return ret;
}
+ ret = krb5_db_get_policy(handle->context, entry->policy, &check_pol);
+ if (!ret) {
+ krb5_db_free_policy(handle->context, check_pol);
+ return KADM5_DUP;
+ } else if (ret != KRB5_KDB_NOENTRY) {
+ return ret;
+ }
+
memset(&pent, 0, sizeof(pent));
pent.name = entry->policy;
p = entry->policy;