PERFORCE change 137895 for review
Zhouyi ZHOU
zhouzhouyi at FreeBSD.org
Mon Mar 17 07:05:39 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=137895
Change 137895 by zhouzhouyi at 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)
More information about the p4-projects
mailing list