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; }
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; }
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; } }