Example #1
0
krb5_error_code KRB5_LIB_FUNCTION
krb5_get_init_creds_opt_get_error(krb5_context context,
                                  krb5_get_init_creds_opt *opt,
                                  KRB_ERROR **error)
{
    krb5_error_code ret;

    *error = NULL;

    ret = require_ext_opt(context, opt, "init_creds_opt_get_error");
    if (ret)
        return ret;

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

    *error = malloc(sizeof(**error));
    if (*error == NULL) {
        krb5_set_error_message(context, ENOMEM, N_("malloc: out of memory", ""));
        return ENOMEM;
    }

    ret = copy_KRB_ERROR(opt->opt_private->error, *error);
    if (ret)
        krb5_clear_error_message(context);

    return 0;
}
Example #2
0
krb5_error_code KRB5_LIB_FUNCTION
krb5_init_creds_get_error(krb5_context context,
			  krb5_init_creds_context ctx,
			  KRB_ERROR *error)
{
    krb5_error_code ret;

    ret = copy_KRB_ERROR(&ctx->error, error);
    if (ret)
	krb5_set_error_message(context, ret, N_("malloc: out of memory", ""));

    return ret;
}
Example #3
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;
    }
}