Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Mar 2008 07:05:38 GMT
From:      Zhouyi ZHOU <zhouzhouyi@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 137895 for review
Message-ID:  <200803170705.m2H75cw4029615@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=137895

Change 137895 by zhouzhouyi@zhouzhouyi_mactest on 2008/03/17 07:05:15

	Correct some memory leak problems of MAC_TEST log mechanism

Affected files ...

.. //depot/projects/soc2007/zhouzhouyi_mactest_soc/sys/security/mac_test/mac_test.c#21 edit

Differences ...

==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/sys/security/mac_test/mac_test.c#21 (text+ko) ====

@@ -116,6 +116,7 @@
 SYSCTL_NODE(_security_mac_test, OID_AUTO, counter, CTLFLAG_RW, 0,
     "TrustedBSD mac_test counters controls");
 
+
 #define	LOG_DECL 							\
 	char *buffer;							\
 	char *currentchar;						\
@@ -835,9 +836,11 @@
 	 * didn't have label storage allocated for them.  Handle this
 	 * gracefully.
 	 */
-	if (label == NULL)
+	if (label == NULL) {
+		if (!badmem)
+			free(buffer, M_MAC_TEST_LOG);
 		return;
-
+        }
 	LABEL_DESTROY(label, MAGIC_MBUF);
 	COUNTER_INC(mbuf_destroy_label);
 }
@@ -2785,8 +2788,10 @@
 
 	LOG_DECL
 	if (attrnamespace == EXTATTR_NAMESPACE_SYSTEM && !strcmp(name, "mac_test")
-		&& uio->uio_iov->iov_len && !strncmp(uio->uio_iov->iov_base, "mac_test", 8))
-		 LABEL_INIT(vplabel, MAGIC_MACTESTLOG);
+		&& uio->uio_iov->iov_len && !strncmp(uio->uio_iov->iov_base, "mac_test", 8)){
+		LABEL_INIT(vplabel, MAGIC_MACTESTLOG);
+		COUNTER_INC(vnode_check_setextattr);
+	}
 	else {
 		LABEL_CHECK(cred->cr_label, MAGIC_CRED);
 		LABEL_CHECK(vplabel, MAGIC_VNODE);
@@ -2892,8 +2897,10 @@
 {
 
 	LOG_DECL
-	if (vplabel != NULL && SLOT(vplabel) == MAGIC_MACTESTLOG)
-		;
+	if (vplabel != NULL && SLOT(vplabel) == MAGIC_MACTESTLOG){
+		if (!badmem)
+			free(buffer, M_MAC_TEST_LOG);
+	}
 	else {
 		LABEL_CHECK(active_cred->cr_label, MAGIC_CRED);
 		if (file_cred != NULL)



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