summaryrefslogtreecommitdiffstats
path: root/proxy/src/gp_rpc_init_sec_context.c
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2012-05-30 11:09:56 -0400
committerSimo Sorce <simo@redhat.com>2012-07-26 16:27:44 -0400
commit8e4fa81d3261bf65baff0e86e8ef0c65f81f347b (patch)
tree57eb81ecf1950fca079acb3636b8a37b2f0b2946 /proxy/src/gp_rpc_init_sec_context.c
parentd9cf94921760c84a799491f929e2ffd2649dfb65 (diff)
downloadgss-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.c8
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,