summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/libgssapi/gss_release_oid_set.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/lib/libgssapi/gss_release_oid_set.c b/lib/libgssapi/gss_release_oid_set.c
index bedb90b..a46853a 100644
--- a/lib/libgssapi/gss_release_oid_set.c
+++ b/lib/libgssapi/gss_release_oid_set.c
@@ -32,15 +32,25 @@
OM_uint32
gss_release_oid_set(OM_uint32 *minor_status,
- gss_OID_set *set)
+ gss_OID_set *setp)
{
+ gss_OID_set set;
+ gss_OID o;
+ size_t i;
*minor_status = 0;
- if (set && *set) {
- if ((*set)->elements)
- free((*set)->elements);
- free(*set);
- *set = GSS_C_NO_OID_SET;
+ if (setp) {
+ set = *setp;
+ if (set) {
+ for (i = 0; i < set->count; i++) {
+ o = &set->elements[i];
+ if (o->elements)
+ free(o->elements);
+ }
+ free(set->elements);
+ free(set);
+ *setp = GSS_C_NO_OID_SET;
+ }
}
return (GSS_S_COMPLETE);
}
OpenPOWER on IntegriCloud