diff options
author | Simo Sorce <simo@redhat.com> | 2012-05-30 11:09:56 -0400 |
---|---|---|
committer | Simo Sorce <simo@redhat.com> | 2012-07-26 16:27:44 -0400 |
commit | 8e4fa81d3261bf65baff0e86e8ef0c65f81f347b (patch) | |
tree | 57eb81ecf1950fca079acb3636b8a37b2f0b2946 /proxy/src/gp_rpc_init_sec_context.c | |
parent | d9cf94921760c84a799491f929e2ffd2649dfb65 (diff) | |
download | gss-proxy-8e4fa81d3261bf65baff0e86e8ef0c65f81f347b.tar.gz gss-proxy-8e4fa81d3261bf65baff0e86e8ef0c65f81f347b.tar.xz gss-proxy-8e4fa81d3261bf65baff0e86e8ef0c65f81f347b.zip |
Fix segfaults when NULL buffer is passed in.
Diffstat (limited to 'proxy/src/gp_rpc_init_sec_context.c')
-rw-r--r-- | proxy/src/gp_rpc_init_sec_context.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/proxy/src/gp_rpc_init_sec_context.c b/proxy/src/gp_rpc_init_sec_context.c index 474ace0..075dcbb 100644 --- a/proxy/src/gp_rpc_init_sec_context.c +++ b/proxy/src/gp_rpc_init_sec_context.c @@ -41,6 +41,7 @@ int gp_init_sec_context(struct gssproxy_ctx *gpctx, struct gss_channel_bindings_struct cbs; gss_channel_bindings_t pcbs; gss_buffer_desc ibuf; + gss_buffer_t pibuf; gss_OID actual_mech_type = GSS_C_NO_OID; gss_buffer_desc obuf = GSS_C_EMPTY_BUFFER; uint32_t ret_maj; @@ -97,7 +98,10 @@ int gp_init_sec_context(struct gssproxy_ctx *gpctx, pcbs = GSS_C_NO_CHANNEL_BINDINGS; } - gp_conv_gssx_to_buffer(isca->input_token, &ibuf); + if (isca->input_token) { + gp_conv_gssx_to_buffer(isca->input_token, &ibuf); + pibuf = &ibuf; + } ret_maj = gss_init_sec_context(&ret_min, ich, @@ -107,7 +111,7 @@ int gp_init_sec_context(struct gssproxy_ctx *gpctx, req_flags, time_req, pcbs, - &ibuf, + pibuf, &actual_mech_type, &obuf, NULL, |