Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 4 Jan 2016 17:42:12 +0000 (UTC)
From:      Doug Rabson <dfr@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r293168 - head/lib/libgssapi
Message-ID:  <201601041742.u04HgCZ7085261@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201601041742.u04HgCZ7085261>