Ejemplo n.º 1
0
void KRB5_LIB_FUNCTION
krb5_get_init_creds_opt_free(krb5_get_init_creds_opt *opt)
{
    if (opt->opt_private == NULL)
	return;
    if (opt->opt_private->refcount < 1) /* abort ? */
	return;
    if (--opt->opt_private->refcount == 0) {
	_krb5_get_init_creds_opt_free_krb5_error(opt);
	_krb5_get_init_creds_opt_free_pkinit(opt);
	free(opt->opt_private);
    }
    memset(opt, 0, sizeof(*opt));
    free(opt);
}
Ejemplo n.º 2
0
void KRB5_LIB_FUNCTION
_krb5_get_init_creds_opt_set_krb5_error(krb5_context context,
                                        krb5_get_init_creds_opt *opt,
                                        const KRB_ERROR *error)
{
    krb5_error_code ret;

    if (opt->opt_private == NULL)
        return;

    _krb5_get_init_creds_opt_free_krb5_error(opt);

    opt->opt_private->error = malloc(sizeof(*opt->opt_private->error));
    if (opt->opt_private->error == NULL)
        return;
    ret = copy_KRB_ERROR(error, opt->opt_private->error);
    if (ret) {
        free(opt->opt_private->error);
        opt->opt_private->error = NULL;
    }
}