PERFORCE change 129551 for review
Zhouyi ZHOU
zhouzhouyi at FreeBSD.org
Sun Nov 25 23:41:25 PST 2007
http://perforce.freebsd.org/chv.cgi?CH=129551
Change 129551 by zhouzhouyi at zhouzhouyi_mactest on 2007/11/26 07:41:00
set limit for the log
Affected files ...
.. //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/pipe_io.c#3 edit
.. //depot/projects/soc2007/zhouzhouyi_mactest_soc/sys/security/mac_test/mac_test.c#14 edit
.. //depot/projects/soc2007/zhouzhouyi_mactest_soc/sys/security/mac_test/mac_test_log.c#9 edit
Differences ...
==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/regression/mactest/pipe_io.c#3 (text+ko) ====
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/tools/regression/mactest/pipe_io.c,v 1.6 2006/11/07 23:28:30 jkim Exp $
+ * $FreeBSD$
*/
#include <sys/types.h>
@@ -45,8 +45,6 @@
#include <unistd.h>
#include "mactest.h"
-#define BEGINLOG _IO('m',1)
-int logfd;
static void
usage(void)
@@ -130,7 +128,7 @@
fprintf(stderr, "too few arguments\n");
usage();
}
- logfd = open("/dev/mactest", O_RDWR);
+ logfd = open(LOGDEV, O_RDWR);
ioctl(logfd, BEGINLOG, NULL);
if (pipe(fd) < 0) {
@@ -160,6 +158,9 @@
}
mac_free(label);
}
+
+
+
switch (fork()) {
case -1:
perror("fork");
@@ -184,9 +185,10 @@
exit(-1);
}
close(fd[1]);
+
for (;;) {
- i = read(fd[0], buf, 256); /* any small size should
- * do */
+ i = read(fd[0], buf, 256);
+
if (i == 0)
break;
if (i < 0) {
@@ -195,12 +197,15 @@
exit(1);
}
}
+
exit(0);
}
default:
break;
}
+ close(logfd);
+
{
mac_t label;
@@ -219,13 +224,16 @@
exit(-1);
}
}
+
+
+
close(fd[0]);
memset(buf, 0, sizeof buf);
for (i = 0; i < 2; i++)
write_frame(fd[1], buf, sizeof buf);
- close(logfd);
+
machookmatch(macconf_file, pid);
==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/sys/security/mac_test/mac_test.c#14 (text+ko) ====
@@ -133,7 +133,8 @@
buffer = malloc(2560, M_MAC_TEST_LOG, M_NOWAIT); \
if (!buffer) \
badmem = 1; \
- bzero(buffer, 2048); \
+ else \
+ bzero(buffer, 2048); \
element1 = buffer + 512; buffer1 = element1 + 256; \
flagbuffer = buffer + 1024; \
submitbuffer = buffer + 1536; \
==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/sys/security/mac_test/mac_test_log.c#9 (text+ko) ====
@@ -85,7 +85,9 @@
static struct vnode *logvnode = 0;
+static int loglength = 0;
+#define LOGMAX 1000
static int
mac_test_log_open(struct cdev *dev, int oflags, int devtype, struct thread *td)
@@ -154,7 +156,7 @@
VOP_UNLOCK(logvnode, 0, curthread);
vn_finished_write(mp);
-
+ loglength = 0;
bad:
NDFREE(&nd, NDF_ONLY_PNBUF);
VFS_UNLOCK_GIANT(vfslocked);
@@ -204,7 +206,9 @@
if (!mac_test_can_log)
return;
-
+ if (loglength > LOGMAX)
+ return;
+
mte = malloc(sizeof(*mte), M_MAC_TEST_LOG, M_NOWAIT | M_ZERO);
if (NULL == mte) {
return;
@@ -219,6 +223,7 @@
bcopy(record, mte->mte_record, record_len);
mte->mte_record_len = record_len;
mtx_lock(&mac_test_submit_mtx);
+ loglength++;
TAILQ_INSERT_TAIL(&mac_test_log_list, mte, mte_queue);
mtx_unlock(&mac_test_submit_mtx);
cv_signal(&mac_test_worker_cv);
More information about the p4-projects
mailing list