Author: dfr
Date: Mon Jan  4 17:42:12 2016
New Revision: 293168
URL: https://svnweb.freebsd.org/changeset/base/293168

Log:
  Fix a memory leak in gss_release_oid_set

Modified:
  head/lib/libgssapi/gss_release_oid_set.c

Modified: head/lib/libgssapi/gss_release_oid_set.c
==============================================================================
--- head/lib/libgssapi/gss_release_oid_set.c    Mon Jan  4 17:25:32 2016        
(r293167)
+++ head/lib/libgssapi/gss_release_oid_set.c    Mon Jan  4 17:42:12 2016        
(r293168)
@@ -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);
 }
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to