diff options
Diffstat (limited to 'proxy')
-rw-r--r-- | proxy/rpcgen/gss_proxy.h | 2 | ||||
-rw-r--r-- | proxy/rpcgen/gss_proxy_xdr.c | 2 | ||||
-rw-r--r-- | proxy/src/gp_conv.c | 25 |
3 files changed, 9 insertions, 20 deletions
diff --git a/proxy/rpcgen/gss_proxy.h b/proxy/rpcgen/gss_proxy.h index 5cb458c..b1f68ef 100644 --- a/proxy/rpcgen/gss_proxy.h +++ b/proxy/rpcgen/gss_proxy.h @@ -131,7 +131,7 @@ struct gssx_call_ctx { typedef struct gssx_call_ctx gssx_call_ctx; struct gssx_name { - gssx_buffer *display_name; + gssx_buffer display_name; gssx_OID name_type; gssx_buffer exported_name; gssx_buffer exported_composite_name; diff --git a/proxy/rpcgen/gss_proxy_xdr.c b/proxy/rpcgen/gss_proxy_xdr.c index 6897766..0c67c7b 100644 --- a/proxy/rpcgen/gss_proxy_xdr.c +++ b/proxy/rpcgen/gss_proxy_xdr.c @@ -203,7 +203,7 @@ xdr_gssx_call_ctx (XDR *xdrs, gssx_call_ctx *objp) bool_t xdr_gssx_name (XDR *xdrs, gssx_name *objp) { - if (!xdr_pointer (xdrs, (char **)&objp->display_name, sizeof (gssx_buffer), (xdrproc_t) xdr_gssx_buffer)) + if (!xdr_gssx_buffer (xdrs, &objp->display_name)) return FALSE; if (!xdr_gssx_OID (xdrs, &objp->name_type)) return FALSE; diff --git a/proxy/src/gp_conv.c b/proxy/src/gp_conv.c index f93f48e..56516ca 100644 --- a/proxy/src/gp_conv.c +++ b/proxy/src/gp_conv.c @@ -307,13 +307,7 @@ int gp_conv_name_to_gssx(gss_name_t in, gssx_name *out) return -1; } - out->display_name = calloc(1, sizeof(gssx_buffer)); - if (!out->display_name) { - ret = ENOMEM; - goto done; - } - - ret = gp_conv_buffer_to_gssx(&name_buffer, out->display_name); + ret = gp_conv_buffer_to_gssx(&name_buffer, &out->display_name); if (ret) { goto done; } @@ -340,10 +334,7 @@ done: gss_release_buffer(&ret_min, &name_buffer); gss_release_buffer(&ret_min, &exported_name); if (ret) { - if (out->display_name) { - xdr_free((xdrproc_t)xdr_gssx_buffer, (char *)out->display_name); - free(out->display_name); - } + xdr_free((xdrproc_t)xdr_gssx_buffer, (char *)&out->display_name); xdr_free((xdrproc_t)xdr_gssx_OID, (char *)&out->name_type); xdr_free((xdrproc_t)xdr_gssx_buffer, (char *)&out->exported_name); } @@ -642,13 +633,11 @@ int gp_copy_gssx_name_alloc(gssx_name *in, gssx_name **out) return ENOMEM; } - if (in->display_name) { - ret = gp_conv_octet_string_alloc(in->display_name->octet_string_len, - in->display_name->octet_string_val, - &o->display_name); - if (ret) { - goto done; - } + ret = gp_conv_octet_string(in->display_name.octet_string_len, + in->display_name.octet_string_val, + &o->display_name); + if (ret) { + goto done; } ret = gp_conv_octet_string(in->name_type.octet_string_len, in->name_type.octet_string_val, |