From 8c10154055f6fc854a09b35c923514ab5041862f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Wed, 24 Jan 2007 01:31:35 +0000 Subject: [PATCH] Catch error from underlaying mech on failure. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@20053 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/gssapi/mech/gss_pseudo_random.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/gssapi/mech/gss_pseudo_random.c b/lib/gssapi/mech/gss_pseudo_random.c index 1eaf8fff3..c1fae947d 100644 --- a/lib/gssapi/mech/gss_pseudo_random.c +++ b/lib/gssapi/mech/gss_pseudo_random.c @@ -46,6 +46,7 @@ gss_pseudo_random(OM_uint32 *minor_status, { struct _gss_context *ctx = (struct _gss_context *) context; gssapi_mech_interface m = ctx->gc_mech; + OM_uint32 major_status; _mg_buffer_zero(prf_out); *minor_status = 0; @@ -57,8 +58,12 @@ gss_pseudo_random(OM_uint32 *minor_status, if (m->gm_pseudo_random == NULL) return GSS_S_UNAVAILABLE; + + major_status = (*m->gm_pseudo_random)(minor_status, ctx->gc_ctx, + prf_key, prf_in, desired_output_len, + prf_out); + if (major_status != GSS_S_COMPLETE) + _gss_mg_error(m, major_status, *minor_status); - return (*m->gm_pseudo_random)(minor_status, ctx->gc_ctx, - prf_key, prf_in, desired_output_len, - prf_out); + return major_status; }