add missing setting of minor_status and failure checks
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@9697 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
		| @@ -1,5 +1,5 @@ | ||||
| /* | ||||
|  * Copyright (c) 1999 - 2000 Kungliga Tekniska H<>gskolan | ||||
|  * Copyright (c) 1999 - 2001 Kungliga Tekniska H<>gskolan | ||||
|  * (Royal Institute of Technology, Stockholm, Sweden).  | ||||
|  * All rights reserved.  | ||||
|  * | ||||
| @@ -53,6 +53,7 @@ gss_import_sec_context ( | ||||
|     krb5_keyblock keyblock; | ||||
|     int32_t tmp; | ||||
|     int32_t flags; | ||||
|     OM_uint32 minor; | ||||
|  | ||||
|     gssapi_krb5_init (); | ||||
|  | ||||
| @@ -69,6 +70,7 @@ gss_import_sec_context ( | ||||
| 	krb5_storage_free (sp); | ||||
| 	return GSS_S_FAILURE; | ||||
|     } | ||||
|     memset (*context_handle, 0, sizeof(**context_handle)); | ||||
|  | ||||
|     kret = krb5_auth_con_init (gssapi_krb5_context, | ||||
| 			       &(*context_handle)->auth_context); | ||||
| @@ -153,30 +155,36 @@ gss_import_sec_context ( | ||||
|     buffer.value  = data.data; | ||||
|     buffer.length = data.length; | ||||
|  | ||||
|     gss_import_name (minor_status, &buffer, GSS_C_NO_OID, | ||||
| 		     &(*context_handle)->source); | ||||
|     ret = gss_import_name (minor_status, &buffer, GSS_C_NO_OID, | ||||
| 			   &(*context_handle)->source); | ||||
|     krb5_data_free (&data); | ||||
|     if (ret) | ||||
| 	goto failure; | ||||
|  | ||||
|     krb5_ret_data (sp, &data); | ||||
|     buffer.value  = data.data; | ||||
|     buffer.length = data.length; | ||||
|  | ||||
|     gss_import_name (minor_status, &buffer, GSS_C_NO_OID, | ||||
| 		     &(*context_handle)->target); | ||||
|     ret = gss_import_name (minor_status, &buffer, GSS_C_NO_OID, | ||||
| 			   &(*context_handle)->target); | ||||
|     krb5_data_free (&data); | ||||
|     if (ret) | ||||
| 	goto failure; | ||||
|  | ||||
|     krb5_ret_int32 (sp, &tmp); | ||||
|     (*context_handle)->flags = tmp; | ||||
|     krb5_ret_int32 (sp, &tmp); | ||||
|     (*context_handle)->more_flags = tmp; | ||||
|  | ||||
|     (*context_handle)->ticket = NULL; | ||||
|  | ||||
|     return GSS_S_COMPLETE; | ||||
|  | ||||
| failure: | ||||
|     krb5_auth_con_free (gssapi_krb5_context, | ||||
| 			(*context_handle)->auth_context); | ||||
|     if ((*context_handle)->source != NULL) | ||||
| 	gss_release_name(&minor, &(*context_handle)->source); | ||||
|     if ((*context_handle)->target != NULL) | ||||
| 	gss_release_name(&minor, &(*context_handle)->target); | ||||
|     free (*context_handle); | ||||
|     *context_handle = GSS_C_NO_CONTEXT; | ||||
|     return ret; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Assar Westerlund
					Assar Westerlund