From owner-p4-projects@FreeBSD.ORG Mon Mar 17 07:05:39 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EA3E91065675; Mon, 17 Mar 2008 07:05:38 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A9DF81065672 for ; Mon, 17 Mar 2008 07:05:38 +0000 (UTC) (envelope-from zhouzhouyi@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 964298FC12 for ; Mon, 17 Mar 2008 07:05:38 +0000 (UTC) (envelope-from zhouzhouyi@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m2H75cY1029617 for ; Mon, 17 Mar 2008 07:05:38 GMT (envelope-from zhouzhouyi@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m2H75cw4029615 for perforce@freebsd.org; Mon, 17 Mar 2008 07:05:38 GMT (envelope-from zhouzhouyi@FreeBSD.org) Date: Mon, 17 Mar 2008 07:05:38 GMT Message-Id: <200803170705.m2H75cw4029615@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhouzhouyi@FreeBSD.org using -f From: Zhouyi ZHOU To: Perforce Change Reviews Cc: Subject: PERFORCE change 137895 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Mar 2008 07:05:39 -0000 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)