Always try to fetch cred (even with GSS_C_NO_NAME).
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@22129 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
		@@ -131,18 +131,19 @@ acquire_cred_service(const char *service,
 | 
			
		||||
    gss_cred_id_t cred_handle;
 | 
			
		||||
    OM_uint32 time_rec;
 | 
			
		||||
    gss_buffer_desc name_buffer;
 | 
			
		||||
    gss_name_t name;
 | 
			
		||||
 | 
			
		||||
    name_buffer.value = rk_UNCONST(service);
 | 
			
		||||
    name_buffer.length = strlen(service);
 | 
			
		||||
 | 
			
		||||
    major_status = gss_import_name(&minor_status,
 | 
			
		||||
				   &name_buffer,
 | 
			
		||||
				   nametype,
 | 
			
		||||
				   &name);
 | 
			
		||||
    if (GSS_ERROR(major_status))
 | 
			
		||||
	errx(1, "import_name failed");
 | 
			
		||||
    gss_name_t name = GSS_C_NO_NAME;
 | 
			
		||||
 | 
			
		||||
    if (service) {
 | 
			
		||||
	name_buffer.value = rk_UNCONST(service);
 | 
			
		||||
	name_buffer.length = strlen(service);
 | 
			
		||||
	
 | 
			
		||||
	major_status = gss_import_name(&minor_status,
 | 
			
		||||
				       &name_buffer,
 | 
			
		||||
				       nametype,
 | 
			
		||||
				       &name);
 | 
			
		||||
	if (GSS_ERROR(major_status))
 | 
			
		||||
	    errx(1, "import_name failed");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    major_status = gss_acquire_cred(&minor_status, 
 | 
			
		||||
				    name,
 | 
			
		||||
@@ -160,7 +161,8 @@ acquire_cred_service(const char *service,
 | 
			
		||||
	gss_release_cred(&minor_status, &cred_handle);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    gss_release_name(&minor_status, &name);
 | 
			
		||||
    if (name != GSS_C_NO_NAME)
 | 
			
		||||
	gss_release_name(&minor_status, &name);
 | 
			
		||||
 | 
			
		||||
    if (GSS_ERROR(major_status))
 | 
			
		||||
	exit(1);
 | 
			
		||||
@@ -245,8 +247,7 @@ main(int argc, char **argv)
 | 
			
		||||
		 gssapi_err(major_status, minor_status, GSS_C_NO_OID));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (acquire_name)
 | 
			
		||||
	acquire_cred_service(acquire_name, type, flag);
 | 
			
		||||
    acquire_cred_service(acquire_name, type, flag);
 | 
			
		||||
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user