aboutsummaryrefslogtreecommitdiff
path: root/appl/test/gssapi_server.c
diff options
context:
space:
mode:
Diffstat (limited to 'appl/test/gssapi_server.c')
-rw-r--r--appl/test/gssapi_server.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/appl/test/gssapi_server.c b/appl/test/gssapi_server.c
index 5d2a39dd7c43..74ceb3bee2e7 100644
--- a/appl/test/gssapi_server.c
+++ b/appl/test/gssapi_server.c
@@ -159,6 +159,8 @@ process_it(int sock,
input_token,
NULL,
output_token);
+ if (GSS_ERROR(maj_stat))
+ gss_err(1, min_stat, "gss_wrap");
write_token (sock, output_token);
gss_release_buffer (&min_stat, output_token);
@@ -184,12 +186,15 @@ proto (int sock, const char *service)
gss_name_t client_name;
struct gss_channel_bindings_struct input_chan_bindings;
gss_cred_id_t delegated_cred_handle = NULL;
- krb5_ccache ccache;
+ krb5_ccache ccache = NULL;
u_char init_buf[4];
u_char acct_buf[4];
gss_OID mech_oid;
char *mech, *p;
+ memset(&remote, 0, sizeof(remote));
+ local = remote;
+
addrlen = sizeof(local);
if (getsockname (sock, (struct sockaddr *)&local, &addrlen) < 0
|| addrlen != sizeof(local))
@@ -270,15 +275,21 @@ proto (int sock, const char *service)
printf("Using mech: %s\n", mech);
if (delegated_cred_handle != GSS_C_NO_CREDENTIAL) {
- krb5_context context;
+ krb5_context context = NULL;
printf("Delegated cred found\n");
- maj_stat = krb5_init_context(&context);
- maj_stat = krb5_cc_resolve(context, "FILE:/tmp/krb5cc_test", &ccache);
- maj_stat = gss_krb5_copy_ccache(&min_stat,
- delegated_cred_handle,
- ccache);
+ min_stat = krb5_init_context(&context);
+ if (min_stat)
+ gss_err(1, min_stat, "krb5_init_context");
+ if (min_stat == 0)
+ min_stat = krb5_cc_resolve(context, "FILE:/tmp/krb5cc_test", &ccache);
+ if (min_stat == 0)
+ maj_stat = gss_krb5_copy_ccache(&min_stat,
+ delegated_cred_handle,
+ ccache);
+ else
+ maj_stat = GSS_S_FAILURE;
if (maj_stat == 0) {
krb5_principal p;
maj_stat = krb5_cc_get_principal(context, ccache, &p);
@@ -293,6 +304,7 @@ proto (int sock, const char *service)
}
}
krb5_cc_close(context, ccache);
+ krb5_free_context(context);
gss_release_cred(&min_stat, &delegated_cred_handle);
}