check return value from krb5_decrypt_iov_ivec
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24129 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
		| @@ -103,7 +103,6 @@ _gk_wrap_iov(OM_uint32 * minor_status, | |||||||
| 	     gss_iov_buffer_desc *iov) | 	     gss_iov_buffer_desc *iov) | ||||||
| { | { | ||||||
|     gsskrb5_ctx ctx = (gsskrb5_ctx) context_handle; |     gsskrb5_ctx ctx = (gsskrb5_ctx) context_handle; | ||||||
|     krb5_crypto crypto = NULL; |  | ||||||
|     krb5_context context; |     krb5_context context; | ||||||
|     OM_uint32 major_status, junk; |     OM_uint32 major_status, junk; | ||||||
|     krb5_crypto_iov *data; |     krb5_crypto_iov *data; | ||||||
| @@ -135,7 +134,7 @@ _gk_wrap_iov(OM_uint32 * minor_status, | |||||||
| 	usage = KRB5_KU_USAGE_INITIATOR_SIGN; | 	usage = KRB5_KU_USAGE_INITIATOR_SIGN; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     *minor_status = krb5_encrypt_iov_ivec(context, crypto, usage, |     *minor_status = krb5_encrypt_iov_ivec(context, ctx->crypto, usage, | ||||||
| 					  data, iov_count, NULL); | 					  data, iov_count, NULL); | ||||||
|     free(data); |     free(data); | ||||||
|     if (major_status != GSS_S_COMPLETE) { |     if (major_status != GSS_S_COMPLETE) { | ||||||
| @@ -156,8 +155,8 @@ _gk_unwrap_iov(OM_uint32 *minor_status, | |||||||
| 	       gss_iov_buffer_desc *iov) | 	       gss_iov_buffer_desc *iov) | ||||||
| { | { | ||||||
|     gsskrb5_ctx ctx = (gsskrb5_ctx) context_handle; |     gsskrb5_ctx ctx = (gsskrb5_ctx) context_handle; | ||||||
|     krb5_crypto crypto = NULL; |  | ||||||
|     krb5_context context; |     krb5_context context; | ||||||
|  |     krb5_error_code ret; | ||||||
|     OM_uint32 major_status, junk; |     OM_uint32 major_status, junk; | ||||||
|     krb5_crypto_iov *data; |     krb5_crypto_iov *data; | ||||||
|     unsigned usage; |     unsigned usage; | ||||||
| @@ -188,12 +187,13 @@ _gk_unwrap_iov(OM_uint32 *minor_status, | |||||||
| 	usage = KRB5_KU_USAGE_ACCEPTOR_SIGN; | 	usage = KRB5_KU_USAGE_ACCEPTOR_SIGN; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     *minor_status = krb5_decrypt_iov_ivec(context, crypto, usage, |     ret = krb5_decrypt_iov_ivec(context, ctx->crypto, usage, | ||||||
| 				data, iov_count, NULL); | 				data, iov_count, NULL); | ||||||
|     free(data); |     free(data); | ||||||
|     if (major_status != GSS_S_COMPLETE) { |     if (ret) { | ||||||
|  |         *minor_status = ret; | ||||||
| 	gss_release_iov_buffer(&junk, iov_count, iov); | 	gss_release_iov_buffer(&junk, iov_count, iov); | ||||||
| 	return major_status; | 	return GSS_S_FAILURE; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     *minor_status = 0; |     *minor_status = 0; | ||||||
| @@ -208,8 +208,8 @@ _gk_wrap_iov_length(OM_uint32 * minor_status, | |||||||
| 		    int iov_count, | 		    int iov_count, | ||||||
| 		    gss_iov_buffer_desc *iov) | 		    gss_iov_buffer_desc *iov) | ||||||
| { | { | ||||||
|  |     gsskrb5_ctx ctx = (gsskrb5_ctx) context_handle; | ||||||
|     krb5_context context; |     krb5_context context; | ||||||
|     krb5_crypto crypto = NULL; |  | ||||||
|     unsigned int i; |     unsigned int i; | ||||||
|     size_t size; |     size_t size; | ||||||
|     size_t *padding = NULL; |     size_t *padding = NULL; | ||||||
| @@ -226,12 +226,12 @@ _gk_wrap_iov_length(OM_uint32 * minor_status, | |||||||
| 	    break; | 	    break; | ||||||
| 	case GSS_IOV_BUFFER_TYPE_HEADER: | 	case GSS_IOV_BUFFER_TYPE_HEADER: | ||||||
| 	    iov[i].buffer.length = | 	    iov[i].buffer.length = | ||||||
| 	      krb5_crypto_length(context, crypto, KRB5_CRYPTO_TYPE_HEADER); | 	      krb5_crypto_length(context, ctx->crypto, KRB5_CRYPTO_TYPE_HEADER); | ||||||
| 	    size += iov[i].buffer.length; | 	    size += iov[i].buffer.length; | ||||||
| 	    break; | 	    break; | ||||||
| 	case GSS_IOV_BUFFER_TYPE_TRAILER: | 	case GSS_IOV_BUFFER_TYPE_TRAILER: | ||||||
| 	    iov[i].buffer.length = | 	    iov[i].buffer.length = | ||||||
| 	      krb5_crypto_length(context, crypto, KRB5_CRYPTO_TYPE_TRAILER); | 	      krb5_crypto_length(context, ctx->crypto, KRB5_CRYPTO_TYPE_TRAILER); | ||||||
| 	    size += iov[i].buffer.length; | 	    size += iov[i].buffer.length; | ||||||
| 	    break; | 	    break; | ||||||
| 	case GSS_IOV_BUFFER_TYPE_PADDING: | 	case GSS_IOV_BUFFER_TYPE_PADDING: | ||||||
| @@ -250,7 +250,8 @@ _gk_wrap_iov_length(OM_uint32 * minor_status, | |||||||
| 	} | 	} | ||||||
|     } |     } | ||||||
|     if (padding) { |     if (padding) { | ||||||
| 	size_t pad = krb5_crypto_length(context, crypto, KRB5_CRYPTO_TYPE_PADDING); | 	size_t pad = krb5_crypto_length(context, ctx->crypto, | ||||||
|  | 					KRB5_CRYPTO_TYPE_PADDING); | ||||||
| 	if (pad > 1) { | 	if (pad > 1) { | ||||||
| 	    *padding = pad - (size % pad); | 	    *padding = pad - (size % pad); | ||||||
| 	    if (*padding == pad) | 	    if (*padding == pad) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Love Hörnquist Åstrand
					Love Hörnquist Åstrand