diff options
author | Simo Sorce <simo@redhat.com> | 2012-01-30 14:03:58 -0500 |
---|---|---|
committer | Simo Sorce <simo@redhat.com> | 2012-02-01 17:56:34 -0500 |
commit | 6b02375bc7189acb11517063fc5acec3c1214ec8 (patch) | |
tree | f2f54a19bac7968bab0e5927eae1f64faf7cea15 /proxy | |
parent | dcf1205c60ca59dfe1060f9d8c4b927e1c0777cf (diff) | |
download | gss-proxy-6b02375bc7189acb11517063fc5acec3c1214ec8.tar.gz gss-proxy-6b02375bc7189acb11517063fc5acec3c1214ec8.tar.xz gss-proxy-6b02375bc7189acb11517063fc5acec3c1214ec8.zip |
Simplify gssx_name struct
We do not need arrays here. When multiple names are required then an array of
gssx_names is more appropriate.
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; } |