krb5_kvno use_kvno;
krb5_timestamp now, start_time;
krb5_actkvno_node *actkvno_list, *new_actkvno_list_head, *new_actkvno,
- *prev_actkvno, *cur_actkvno;
+ *prev_actkvno, *cur_actkvno;
krb5_db_entry master_entry;
int nentries = 0;
krb5_boolean more = 0;
"\t [-mkey_convert] [-new_mkey_file mkey_file]\n"
"\t [-rev] [-recurse] [filename [princs...]]\n"
"\tload [-old] [-ov] [-b6] [-verbose] [-update] filename\n"
- "\tark [-e etype_list] principal\n"
+ "\tark [-e etype_list] principal\n");
+ /* avoid a string length compiler warning */
+ fprintf(stderr,
"\nwhere,\n\t[-x db_args]* - any number of database specific arguments.\n"
"\t\t\tLook at each database documentation for supported arguments\n");
exit(1);
int nprincs = 0;
krb5_boolean more;
krb5_timestamp kdc_time, authtime=0;
- krb5_keyblock session_key, *tmp_mkey;
+ krb5_keyblock session_key;
krb5_timestamp until, rtime;
krb5_keyblock encrypting_key;
krb5_key_data *server_key;
krb5_deltat *delta;
krb5_keyblock *keys, *tmp_mkey;
krb5_key_data *entry_key;
+ krb5_error_code error;
switch (type) {
case krb5plugin_preauth_entry_request_certificate:
ret->data = (char *) keys;
ret->length = sizeof(krb5_keyblock) * (request->nktypes + 1);
memset(ret->data, 0, ret->length);
- if ((ret = krb5_dbe_find_mkey(context, master_keylist, &entry, &tmp_mkey)))
- return (ret);
+ if ((error = krb5_dbe_find_mkey(context, master_keylist, entry, &tmp_mkey))) {
+ free(ret);
+ return (error);
+ }
k = 0;
for (i = 0; i < request->nktypes; i++) {
entry_key = NULL;
if ((enc_ts_data.data = (char *) malloc(enc_ts_data.length)) == NULL)
goto cleanup;
- if ((retval = krb5_dbe_find_mkey(context, master_keylist, &client, &tmp_mkey)))
+ if ((retval = krb5_dbe_find_mkey(context, master_keylist, client, &tmp_mkey)))
goto cleanup;
start = 0;
return(KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN);
}
- retval = krb5_dbe_find_mkey(kdc_context, master_keylist, &server, &tmp_mkey);
+ retval = krb5_dbe_find_mkey(kdc_context, master_keylist, server, &tmp_mkey);
if (retval)
goto errout;
- retval = krb5_dbe_find_enctype(kdc_context, &server,
+ retval = krb5_dbe_find_enctype(kdc_context, server,
ticket->enc_part.enctype, -1,
(krb5_int32)ticket->enc_part.kvno, &server_key);
if (retval)
#if !defined(lint) && !defined(__CODECENTER__)
static char *rcsid = "$Header$";
#endif
+#include <k5-int.h>
#include <kadm5/admin.h>
#include <stdlib.h>
#include "server_internal.h"
free(names);
return KADM5_OK;
}
-/* XXX WAF: maybe delete this if all compiles */
-#if 0 /************** Begin IFDEF'ed OUT *******************************/
-/* XXX this ought to be in libkrb5.a, but isn't */
-kadm5_ret_t krb5_free_key_data_contents(context, key)
- krb5_context context;
- krb5_key_data *key;
-{
- int i, idx;
-
- idx = (key->key_data_ver == 1 ? 1 : 2);
- for (i = 0; i < idx; i++) {
- if (key->key_data_contents[i]) {
- memset(key->key_data_contents[i], 0, key->key_data_length[i]);
- free(key->key_data_contents[i]);
- }
- }
- return KADM5_OK;
-}
-#endif /**************** END IFDEF'ed OUT *******************************/
kadm5_ret_t kadm5_free_key_data(void *server_handle,
krb5_int16 *n_key_data,
int ret = 0;
char *realm;
krb5_boolean from_kbd = FALSE;
- krb5_keyblock *mkey;
krb5_kvno mkvno = IGNORE_VNO;
if (from_keyboard)
#endif /**************** END IFDEF'ed OUT *******************************/
if ((ret = krb5_db_fetch_mkey_list(handle->context, master_princ,
- mkey, mkvno, &master_keylist))) {
+ &master_keyblock, mkvno, &master_keylist))) {
krb5_db_fini(handle->context);
return (ret);
}
ret = krb5_dbe_find_act_mkey(handle->context, master_keylist,
active_mkey_list, &act_kvno, &act_mkey);
- if (ret)
- return (ret);
+ if (ret) {
+ krb5_db_free_principal(handle->context, &kdb, 1);
+ if (mask & KADM5_POLICY)
+ (void) kadm5_free_policy_ent(handle->lhandle, &polent);
+ return (ret);
+ }
if ((ret = krb5_dbe_cpw(handle->context, act_mkey,
n_ks_tuple?ks_tuple:handle->params.keysalts,