diff options
Diffstat (limited to 'proxy')
-rw-r--r-- | proxy/rpcgen/gss_proxy.h | 10 | ||||
-rw-r--r-- | proxy/rpcgen/gss_proxy_xdr.c | 6 | ||||
-rw-r--r-- | proxy/src/gp_conv.c | 15 |
3 files changed, 6 insertions, 25 deletions
diff --git a/proxy/rpcgen/gss_proxy.h b/proxy/rpcgen/gss_proxy.h index d49fe01..9986240 100644 --- a/proxy/rpcgen/gss_proxy.h +++ b/proxy/rpcgen/gss_proxy.h @@ -138,14 +138,8 @@ typedef struct gssx_call_ctx gssx_call_ctx; struct gssx_name { gssx_buffer *display_name; gssx_OID name_type; - struct { - u_int exported_name_len; - gssx_buffer *exported_name_val; - } exported_name; - struct { - u_int exported_composite_name_len; - gssx_buffer *exported_composite_name_val; - } exported_composite_name; + gssx_buffer exported_name; + gssx_buffer exported_composite_name; struct { u_int name_attributes_len; gssx_name_attr *name_attributes_val; diff --git a/proxy/rpcgen/gss_proxy_xdr.c b/proxy/rpcgen/gss_proxy_xdr.c index 22926d6..2853939 100644 --- a/proxy/rpcgen/gss_proxy_xdr.c +++ b/proxy/rpcgen/gss_proxy_xdr.c @@ -207,11 +207,9 @@ xdr_gssx_name (XDR *xdrs, gssx_name *objp) return FALSE; if (!xdr_gssx_OID (xdrs, &objp->name_type)) return FALSE; - if (!xdr_array (xdrs, (char **)&objp->exported_name.exported_name_val, (u_int *) &objp->exported_name.exported_name_len, ~0, - sizeof (gssx_buffer), (xdrproc_t) xdr_gssx_buffer)) + if (!xdr_gssx_buffer (xdrs, &objp->exported_name)) return FALSE; - if (!xdr_array (xdrs, (char **)&objp->exported_composite_name.exported_composite_name_val, (u_int *) &objp->exported_composite_name.exported_composite_name_len, ~0, - sizeof (gssx_buffer), (xdrproc_t) xdr_gssx_buffer)) + if (!xdr_gssx_buffer (xdrs, &objp->exported_composite_name)) return FALSE; if (!xdr_array (xdrs, (char **)&objp->name_attributes.name_attributes_val, (u_int *) &objp->name_attributes.name_attributes_len, ~0, sizeof (gssx_name_attr), (xdrproc_t) xdr_gssx_name_attr)) diff --git a/proxy/src/gp_conv.c b/proxy/src/gp_conv.c index 573eb27..f79000d 100644 --- a/proxy/src/gp_conv.c +++ b/proxy/src/gp_conv.c @@ -302,14 +302,7 @@ int gp_conv_name_to_gssx(gss_name_t in, gssx_name *out) goto done; } - out->exported_name.exported_name_len = 1; - out->exported_name.exported_name_val = calloc(1, sizeof(gssx_buffer)); - if (!out->exported_name.exported_name_val) { - ret = ENOMEM; - goto done; - } - ret = gp_conv_buffer_to_gssx(&exported_name, - out->exported_name.exported_name_val); + ret = gp_conv_buffer_to_gssx(&exported_name, &out->exported_name); if (ret) { goto done; } @@ -326,11 +319,7 @@ done: free(out->display_name); } xdr_free((xdrproc_t)xdr_gssx_OID, (char *)&out->name_type); - if (out->exported_name.exported_name_val) { - xdr_free((xdrproc_t)xdr_gssx_buffer, - (char *)out->exported_name.exported_name_val); - free(out->exported_name.exported_name_val); - } + xdr_free((xdrproc_t)xdr_gssx_buffer, (char *)&out->exported_name); } return ret; } |