From owner-p4-projects@FreeBSD.ORG Sun Oct 16 04:35:50 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 5395316A422; Sun, 16 Oct 2005 04:35:49 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 9F6C016A420
for ; Sun, 16 Oct 2005 04:35:48 +0000 (GMT)
(envelope-from gnn@neville-neil.com)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id 4E15443D46
for ; Sun, 16 Oct 2005 04:35:48 +0000 (GMT)
(envelope-from gnn@neville-neil.com)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9G4ZmVH019419
for ; Sun, 16 Oct 2005 04:35:48 GMT
(envelope-from gnn@neville-neil.com)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9G4Zl4M019416
for perforce@freebsd.org; Sun, 16 Oct 2005 04:35:47 GMT
(envelope-from gnn@neville-neil.com)
Date: Sun, 16 Oct 2005 04:35:47 GMT
Message-Id: <200510160435.j9G4Zl4M019416@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
gnn@neville-neil.com using -f
From: "George V. Neville-Neil"
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 85357 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: Sun, 16 Oct 2005 04:35:50 -0000
http://perforce.freebsd.org/chv.cgi?CH=85357
Change 85357 by gnn@gnn_laptop_fast_ipsec on 2005/10/16 04:35:01
Clean up my view wrt the HEAD and the fast_ipsec branch
Affected files ...
.. //depot/projects/fast_ipsec/src/sys/boot/i386/boot2/boot2.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/pccard/pccardvarp.h#2 integrate
.. //depot/projects/fast_ipsec/src/sys/i386/svr4/svr4_machdep.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/kern/subr_param.c#3 integrate
Differences ...
==== //depot/projects/fast_ipsec/src/sys/boot/i386/boot2/boot2.c#3 (text+ko) ====
@@ -14,7 +14,7 @@
*/
#include
-__FBSDID("$FreeBSD: src/sys/boot/i386/boot2/boot2.c,v 1.75 2005/09/22 11:20:33 ru Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/i386/boot2/boot2.c,v 1.76 2005/10/16 01:55:35 sobomax Exp $");
#include
#include
@@ -60,20 +60,22 @@
/* 0x12 is reserved for boot programs. */
/* 0x13 is reserved for boot programs. */
#define RBX_PAUSE 0x14 /* -p */
-#define RBX_NOINTR 0x1c /* -n */
/* 0x1d is reserved for log2(RB_MULTIPLE) and is just misnamed here. */
#define RBX_DUAL 0x1d /* -D */
/* 0x1f is reserved for log2(RB_BOOTINFO). */
+/* group of internal options below */
+#define RBX_NOINTR 0x20 /* -n */
+#define RBX_QUIET 0x21 /* -q */
/* pass: -a, -s, -r, -d, -c, -v, -h, -C, -g, -m, -p, -D */
-#define RBX_MASK 0x2011ffff
+#define RBX_MASK 0xffffffff
#define PATH_CONFIG "/boot.config"
#define PATH_BOOT3 "/boot/loader"
#define PATH_KERNEL "/boot/kernel/kernel"
#define ARGS 0x900
-#define NOPT 11
+#define NOPT 12
#define NDEV 3
#define MEM_BASE 0x12
#define MEM_EXT 0x15
@@ -88,9 +90,11 @@
#define TYPE_MAXHARD TYPE_DA
#define TYPE_FD 2
+#define OPT_CHECK(opt) ((opts >> (opt)) & 0x1)
+
extern uint32_t _end;
-static const char optstr[NOPT] = "DhaCgmnprsv"; /* Also 'P', 'S' */
+static const char optstr[NOPT] = "DhaCgmnpqrsv"; /* Also 'P', 'S' */
static const unsigned char flags[NOPT] = {
RBX_DUAL,
RBX_SERIAL,
@@ -100,6 +104,7 @@
RBX_MUTE,
RBX_NOINTR,
RBX_PAUSE,
+ RBX_QUIET,
RBX_DFLTROOT,
RBX_SINGLE,
RBX_VERBOSE
@@ -119,7 +124,7 @@
} dsk;
static char cmd[512];
static char kname[1024];
-static uint32_t opts;
+static uint64_t opts;
static int comspeed = SIOSPD;
static struct bootinfo bootinfo;
static uint8_t ioctrl = IO_KEYBOARD;
@@ -158,7 +163,7 @@
#include "ufsread.c"
-static int
+static inline int
xfsread(ino_t inode, void *buf, size_t nbyte)
{
if ((size_t)fsread(inode, buf, nbyte) != nbyte) {
@@ -244,7 +249,8 @@
if (*cmd) {
if (parse())
autoboot = 0;
- printf("%s: %s", PATH_CONFIG, cmd);
+ if (!OPT_CHECK(RBX_QUIET))
+ printf("%s: %s", PATH_CONFIG, cmd);
/* Do not process this command twice */
*cmd = 0;
}
@@ -265,16 +271,17 @@
/* Present the user with the boot2 prompt. */
for (;;) {
- printf("\nFreeBSD/i386 boot\n"
- "Default: %u:%s(%u,%c)%s\n"
- "boot: ",
- dsk.drive & DRV_MASK, dev_nm[dsk.type], dsk.unit,
- 'a' + dsk.part, kname);
+ if (!autoboot || !OPT_CHECK(RBX_QUIET))
+ printf("\nFreeBSD/i386 boot\n"
+ "Default: %u:%s(%u,%c)%s\n"
+ "boot: ",
+ dsk.drive & DRV_MASK, dev_nm[dsk.type], dsk.unit,
+ 'a' + dsk.part, kname);
if (ioctrl & IO_SERIAL)
sio_flush();
if (!autoboot || keyhit(5*SECOND))
getstr();
- else
+ else if (!autoboot || !OPT_CHECK(RBX_QUIET))
putchar('\n');
autoboot = 0;
if (parse())
@@ -293,12 +300,12 @@
static void
load(void)
{
- union {
+ static union {
struct exec ex;
Elf32_Ehdr eh;
} hdr;
- Elf32_Phdr ep[2];
- Elf32_Shdr es[2];
+ static Elf32_Phdr ep[2];
+ static Elf32_Shdr es[2];
caddr_t p;
ino_t ino;
uint32_t addr, x;
@@ -380,7 +387,7 @@
bootinfo.bi_esymtab = VTOP(p);
bootinfo.bi_kernelname = VTOP(kname);
bootinfo.bi_bios_dev = dsk.drive;
- __exec((caddr_t)addr, RB_BOOTINFO | (opts & RBX_MASK),
+ __exec((caddr_t)addr, RB_BOOTINFO | (uint32_t)(opts & RBX_MASK),
MAKEBOOTDEV(dev_maj[dsk.type], 0, dsk.slice, dsk.unit, dsk.part),
0, 0, 0, VTOP(&bootinfo));
}
@@ -407,7 +414,7 @@
if (*(uint8_t *)PTOV(0x496) & 0x10) {
cp = "yes";
} else {
- opts |= 1 << RBX_DUAL | 1 << RBX_SERIAL;
+ opts |= (uint64_t)1 << RBX_DUAL | (uint64_t)1 << RBX_SERIAL;
cp = "no";
}
printf("Keyboard: %s\n", cp);
@@ -425,10 +432,10 @@
for (i = 0; c != optstr[i]; i++)
if (i == NOPT - 1)
return -1;
- opts ^= 1 << flags[i];
+ opts ^= (uint64_t)1 << flags[i];
}
- ioctrl = opts & 1 << RBX_DUAL ? (IO_SERIAL|IO_KEYBOARD) :
- opts & 1 << RBX_SERIAL ? IO_SERIAL : IO_KEYBOARD;
+ ioctrl = opts & (uint64_t)1 << RBX_DUAL ? (IO_SERIAL|IO_KEYBOARD) :
+ opts & (uint64_t)1 << RBX_SERIAL ? IO_SERIAL : IO_KEYBOARD;
if (ioctrl & IO_SERIAL)
sio_init(115200 / comspeed);
} else {
@@ -596,7 +603,8 @@
{
static unsigned c = 0x2d5c7c2f;
- printf("%c\b", c = c << 8 | c >> 24);
+ if (!OPT_CHECK(RBX_QUIET))
+ printf("%c\b", c = c << 8 | c >> 24);
v86.ctl = V86_ADDR | V86_CALLF | V86_FLAGS;
v86.addr = XREADORG; /* call to xread in boot1 */
v86.es = VTOPSEG(buf);
@@ -618,7 +626,7 @@
{
uint32_t t0, t1;
- if (opts & 1 << RBX_NOINTR)
+ if (OPT_CHECK(RBX_NOINTR))
return 0;
t0 = 0;
for (;;) {
@@ -645,7 +653,7 @@
static int
xgetc(int fn)
{
- if (opts & 1 << RBX_NOINTR)
+ if (OPT_CHECK(RBX_NOINTR))
return 0;
for (;;) {
if (ioctrl & IO_KEYBOARD && getc(1))
==== //depot/projects/fast_ipsec/src/sys/dev/pccard/pccardvarp.h#2 (text+ko) ====
@@ -24,7 +24,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/dev/pccard/pccardvarp.h,v 1.1 2005/09/20 06:47:33 imp Exp $
+ * $FreeBSD: src/sys/dev/pccard/pccardvarp.h,v 1.2 2005/10/16 03:58:06 imp Exp $
*/
#ifndef _PCCARD_PCCARDVARP_H
@@ -32,7 +32,7 @@
/* pccard itself */
-#define PCCARD_MEM_PAGE_SIZE 4096
+#define PCCARD_MEM_PAGE_SIZE 1024
#define PCCARD_CFE_MWAIT_REQUIRED 0x0001
#define PCCARD_CFE_RDYBSY_ACTIVE 0x0002
==== //depot/projects/fast_ipsec/src/sys/i386/svr4/svr4_machdep.c#3 (text+ko) ====
@@ -27,7 +27,7 @@
*/
#include
-__FBSDID("$FreeBSD: src/sys/i386/svr4/svr4_machdep.c,v 1.36 2005/10/14 12:43:45 davidxu Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/svr4/svr4_machdep.c,v 1.37 2005/10/15 22:57:39 davidxu Exp $");
#include
#include
@@ -413,7 +413,7 @@
void
svr4_sendsig(catcher, ksi, mask)
sig_t catcher;
- ksiginfo_t ksi;
+ ksiginfo_t *ksi;
sigset_t *mask;
{
register struct thread *td = curthread;
==== //depot/projects/fast_ipsec/src/sys/kern/subr_param.c#3 (text+ko) ====
@@ -35,7 +35,7 @@
*/
#include
-__FBSDID("$FreeBSD: src/sys/kern/subr_param.c,v 1.72 2005/10/14 19:15:10 kris Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/subr_param.c,v 1.73 2005/10/16 03:58:10 kris Exp $");
#include "opt_param.h"
#include "opt_maxusers.h"
From owner-p4-projects@FreeBSD.ORG Sun Oct 16 13:17:31 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 7EFE316A423; Sun, 16 Oct 2005 13:17:30 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 19D1016A41F
for ; Sun, 16 Oct 2005 13:17:30 +0000 (GMT)
(envelope-from soc-chenk@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id 1F43C43D67
for ; Sun, 16 Oct 2005 13:17:26 +0000 (GMT)
(envelope-from soc-chenk@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9GDHPcZ062278
for ; Sun, 16 Oct 2005 13:17:25 GMT
(envelope-from soc-chenk@freebsd.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9GDHPJp062275
for perforce@freebsd.org; Sun, 16 Oct 2005 13:17:25 GMT
(envelope-from soc-chenk@freebsd.org)
Date: Sun, 16 Oct 2005 13:17:25 GMT
Message-Id: <200510161317.j9GDHPJp062275@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
soc-chenk@freebsd.org using -f
From: soc-chenk
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 85366 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: Sun, 16 Oct 2005 13:17:32 -0000
http://perforce.freebsd.org/chv.cgi?CH=85366
Change 85366 by soc-chenk@soc-chenk_leavemealone on 2005/10/16 13:16:25
fix filehandle leak of readdir
Submitted by: soc-chenk
Affected files ...
.. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#19 edit
Differences ...
==== //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#19 (text+ko) ====
@@ -3601,9 +3601,9 @@
struct thread *td = curthread;
int err = 0;
struct fuse_iov cookediov;
+ struct fuse_filehandle *fufh;
#if DIRECTIO_FOR_DIRS
struct filedesc *fdp = td->td_proc->p_fd;
- struct fuse_filehandle *fufh;
struct file **fpp;
struct file *fp = NULL;
int found = -1;
@@ -3653,6 +3653,12 @@
fufh = fp->f_data;
#endif
+#if ! DIRECTIO_FOR_DIRS
+ if ( ! (fufh = get_filehandle(vp, td, cred, FREAD))) {
+ DEBUG2G("fetching filehandle failed\n");
+ return (EIO);
+ }
+#endif
/*
* In "most cases" this will do and won't have to resize the buffer
* (that is, if the daemon has a "tight" view of the dir entries,
@@ -3662,20 +3668,18 @@
* (See fuse_dir_buffeater).
*/
fuse_iov_init(&cookediov, DIRCOOKEDSIZE);
-#if DIRECTIO_FOR_DIRS
- err = fuse_read_directbackend(vp, fufh, uio, cred, td, FUSE_READDIR,
- fuse_dir_buffeater, &cookediov);
-#else
/*
* We tried hard to use bio, but offsety readdir can't be handled
* properly that way -- the offset field of fuse_dirents can't be
* mapped to an offset of a bio buffer
*/
- err = fuse_read_directbackend(vp, get_filehandle(vp, td, cred, FREAD),
- uio, cred, td, FUSE_READDIR,
+ err = fuse_read_directbackend(vp, fufh, uio, cred, td, FUSE_READDIR,
fuse_dir_buffeater, &cookediov);
+ fuse_iov_teardown(&cookediov);
+#if ! DIRECTIO_FOR_DIRS
+ fufh->useco--;
#endif
- fuse_iov_teardown(&cookediov);
+
return (err);
}
From owner-p4-projects@FreeBSD.ORG Sun Oct 16 13:18:29 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 13EA816A421; Sun, 16 Oct 2005 13:18:29 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id CADD516A41F
for ; Sun, 16 Oct 2005 13:18:28 +0000 (GMT)
(envelope-from soc-chenk@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id E63E043D5C
for ; Sun, 16 Oct 2005 13:18:27 +0000 (GMT)
(envelope-from soc-chenk@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9GDIRkh062338
for ; Sun, 16 Oct 2005 13:18:27 GMT
(envelope-from soc-chenk@freebsd.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9GDIR6m062335
for perforce@freebsd.org; Sun, 16 Oct 2005 13:18:27 GMT
(envelope-from soc-chenk@freebsd.org)
Date: Sun, 16 Oct 2005 13:18:27 GMT
Message-Id: <200510161318.j9GDIR6m062335@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
soc-chenk@freebsd.org using -f
From: soc-chenk
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 85367 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: Sun, 16 Oct 2005 13:18:29 -0000
http://perforce.freebsd.org/chv.cgi?CH=85367
Change 85367 by soc-chenk@soc-chenk_leavemealone on 2005/10/16 13:17:34
add option for prefixing absolute symlinks with mount path
Submitted by: soc-chenk
Affected files ...
.. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#20 edit
.. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.h#10 edit
.. //depot/projects/soc2005/fuse4bsd2/mount_fusefs/mount_fusefs.8#3 edit
.. //depot/projects/soc2005/fuse4bsd2/mount_fusefs/mount_fusefs.c#6 edit
Differences ...
==== //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#20 (text+ko) ====
@@ -1801,6 +1801,7 @@
vfs_flagopt(opts, "neglect_shares", &fmnt->mntopts,
FUSEFS_NEGLECT_SHARES);
vfs_flagopt(opts, "allow_other", &fmnt->mntopts, FUSEFS_DAEMON_CAN_SPY);
+ vfs_flagopt(opts, "push_symlinks_in", &fmnt->mntopts, FUSEFS_PUSH_SYMLINKS_IN);
if (fdata_kick_get(data))
err = ENOTCONN;
@@ -3855,8 +3856,19 @@
if ((err = fdisp_simple_putget(&fdi, FUSE_READLINK, vp, curthread,
ap->a_cred)))
return (err);
-
- err = uiomove(fdi.answ, fdi.iosize, uio);
+
+ DEBUG("answ %s, push 0x%x, mnton %s\n",
+ (char *)fdi.answ,
+ ((struct fuse_mnt_data *)vp->v_mount->mnt_data)->mntopts & FUSEFS_PUSH_SYMLINKS_IN,
+ vp->v_mount->mnt_stat.f_mntonname);
+
+ if (((char *)fdi.answ)[0] == '/' &&
+ ((struct fuse_mnt_data *)vp->v_mount->mnt_data)->mntopts & FUSEFS_PUSH_SYMLINKS_IN)
+ err = uiomove(vp->v_mount->mnt_stat.f_mntonname,
+ strlen(vp->v_mount->mnt_stat.f_mntonname), uio);
+
+ if (! err)
+ err = uiomove(fdi.answ, fdi.iosize, uio);
ticket_drop(fdi.tick);
sx_sunlock(fdi.slock);
==== //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.h#10 (text+ko) ====
@@ -142,13 +142,14 @@
/* (taken from Linux Fuse) */
#define FUSE_MAX_PAGES_PER_REQ 32
-#define FUSEFS_UNPRIVPROCDBG 0x01
-#define FUSEFH_DIRECTIO 0x02
-#define FUSEFS_DAEMON_CAN_SPY 0x04
-#define FUSEFS_NEGLECT_SHARES 0x08
-#define FUSEFS_PRIVATE 0x10
-#define FUSEFS_SECONDARY 0x20
-#define FUSEFS_BUSY 0x40
+#define FUSEFS_UNPRIVPROCDBG 0x01
+#define FUSEFH_DIRECTIO 0x02
+#define FUSEFS_DAEMON_CAN_SPY 0x04
+#define FUSEFS_NEGLECT_SHARES 0x08
+#define FUSEFS_PRIVATE 0x10
+#define FUSEFS_SECONDARY 0x20
+#define FUSEFS_BUSY 0x40
+#define FUSEFS_PUSH_SYMLINKS_IN 0x80
struct fuse_mnt_data {
struct cdev *fdev;
==== //depot/projects/soc2005/fuse4bsd2/mount_fusefs/mount_fusefs.8#3 (text+ko) ====
@@ -99,6 +99,8 @@
Refuse shared mounting of the daemon.
.It Cm neglect_shares
Don't refuse unmounting if there are secondary mounts.
+.It Cm push_symlinks_in
+Prefix absolute symlinks with mountpoint.
.El
.Pp
.El
==== //depot/projects/soc2005/fuse4bsd2/mount_fusefs/mount_fusefs.c#6 (text+ko) ====
@@ -75,7 +75,8 @@
strcmp(optarg, "from") &&
strcmp(optarg, "allow_other") &&
strcmp(optarg, "neglect_shares") &&
- strcmp(optarg, "private") /* &&
+ strcmp(optarg, "private") &&
+ strcmp(optarg, "push_symlinks_in") /* &&
strcmp(optarg, "kernel_cache") &&
strcmp(optarg, "direct_io") */)
usage();
@@ -191,7 +192,7 @@
" [fuse_daemon args...]"
#endif
"\n"
- "known options: allow_other private neglect_shares\n"
+ "known options: allow_other private neglect_shares push_symlinks_in\n"
"(multiple options require separate \"-o\"-s)\n",
progname);
From owner-p4-projects@FreeBSD.ORG Sun Oct 16 13:19:30 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 35DD016A423; Sun, 16 Oct 2005 13:19:30 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id D423116A41F
for ; Sun, 16 Oct 2005 13:19:29 +0000 (GMT)
(envelope-from soc-chenk@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id 96A2443D46
for ; Sun, 16 Oct 2005 13:19:29 +0000 (GMT)
(envelope-from soc-chenk@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9GDJTFb062359
for ; Sun, 16 Oct 2005 13:19:29 GMT
(envelope-from soc-chenk@freebsd.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9GDJTdp062356
for perforce@freebsd.org; Sun, 16 Oct 2005 13:19:29 GMT
(envelope-from soc-chenk@freebsd.org)
Date: Sun, 16 Oct 2005 13:19:29 GMT
Message-Id: <200510161319.j9GDJTdp062356@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
soc-chenk@freebsd.org using -f
From: soc-chenk
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 85368 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: Sun, 16 Oct 2005 13:19:30 -0000
http://perforce.freebsd.org/chv.cgi?CH=85368
Change 85368 by soc-chenk@soc-chenk_leavemealone on 2005/10/16 13:18:28
Display version number 0.2.20pre4 in README.html
tagged 0.2.20pre4
Submitted by: soc-chenk
Affected files ...
.. //depot/projects/soc2005/fuse4bsd2/README.html#13 edit
Differences ...
==== //depot/projects/soc2005/fuse4bsd2/README.html#13 (text+ko) ====
@@ -55,7 +55,7 @@
- The FreeBSD module. Source tarballs are provided at
http://creo.hu/~csaba/projects/fuse4bsd/downloads/ under the name fuse4bsd-<version>.tar.* (latest release is 0.2.20pre3, date of release: 15th Oct 2005). The current code is available via
Darcs, you can fetch it by
+ The FreeBSD module. Source tarballs are provided at
http://creo.hu/~csaba/projects/fuse4bsd/downloads/ under the name fuse4bsd-<version>.tar.* (latest release is 0.2.20pre4, date of release: 16th Oct 2005). The current code is available via
Darcs, you can fetch it by
darcs get http://creo.hu/~csaba/darcs-repos/fuse4bsd
command, or via
Perforce (you can use this latter link for online source code browsing).
From owner-p4-projects@FreeBSD.ORG Mon Oct 17 07:19:40 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 1BEEE16A421; Mon, 17 Oct 2005 07:19:40 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 1422916A41F
for ; Mon, 17 Oct 2005 07:19:38 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id BD5BD43D46
for ; Mon, 17 Oct 2005 07:19:37 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9H7JbEl036376
for ; Mon, 17 Oct 2005 07:19:37 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9H7JauI036371
for perforce@freebsd.org; Mon, 17 Oct 2005 07:19:36 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Mon, 17 Oct 2005 07:19:36 GMT
Message-Id: <200510170719.j9H7JauI036371@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 85412 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 Oct 2005 07:19:40 -0000
http://perforce.freebsd.org/chv.cgi?CH=85412
Change 85412 by rwatson@rwatson_peppercorn on 2005/10/17 07:18:55
Style tweak.
Affected files ...
.. //depot/projects/trustedbsd/openbsm/libbsm/bsm_token.c#19 edit
Differences ...
==== //depot/projects/trustedbsd/openbsm/libbsm/bsm_token.c#19 (text+ko) ====
@@ -214,7 +214,6 @@
{
return (au_to_attr32(vni));
-
}
#endif /* !(defined(_KERNEL) || defined(KERNEL) */
From owner-p4-projects@FreeBSD.ORG Mon Oct 17 07:42:08 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 93E0516A421; Mon, 17 Oct 2005 07:42:07 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 2AF5A16A41F
for ; Mon, 17 Oct 2005 07:42:07 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id E060943D49
for ; Mon, 17 Oct 2005 07:42:06 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9H7g67b037231
for ; Mon, 17 Oct 2005 07:42:06 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9H7g6dB037228
for perforce@freebsd.org; Mon, 17 Oct 2005 07:42:06 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Mon, 17 Oct 2005 07:42:06 GMT
Message-Id: <200510170742.j9H7g6dB037228@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 85414 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 Oct 2005 07:42:08 -0000
http://perforce.freebsd.org/chv.cgi?CH=85414
Change 85414 by rwatson@rwatson_peppercorn on 2005/10/17 07:41:43
Minor whitespace and style tweaks for token code.
Affected files ...
.. //depot/projects/trustedbsd/openbsm/libbsm/bsm_token.c#20 edit
Differences ...
==== //depot/projects/trustedbsd/openbsm/libbsm/bsm_token.c#20 (text+ko) ====
@@ -164,7 +164,6 @@
return (NULL);
}
-
GET_TOKEN_AREA(t, dptr, 29);
if (t == NULL)
return (NULL);
@@ -237,7 +236,7 @@
}
/* Determine the size of the basic unit. */
- switch(unit_type) {
+ switch (unit_type) {
case AUR_BYTE:
datasize = AUR_BYTE_SIZE;
break;
@@ -391,7 +390,8 @@
* token ID 1 byte
* ip header 20 bytes
*/
-token_t *au_to_ip(struct ip *ip)
+token_t *
+au_to_ip(struct ip *ip)
{
token_t *t;
u_char *dptr = NULL;
@@ -544,11 +544,11 @@
}
/*
- * token ID 1 byte
- * seconds of time 4 bytes
- * milliseconds of time 4 bytes
- * file name len 2 bytes
- * file pathname N bytes + 1 terminating NULL byte
+ * token ID 1 byte
+ * seconds of time 4 bytes
+ * milliseconds of time 4 bytes
+ * file name len 2 bytes
+ * file pathname N bytes + 1 terminating NULL byte
*/
token_t *
#if defined(KERNEL) || defined(_KERNEL)
@@ -707,7 +707,8 @@
pid_t pid, au_asid_t sid, au_tid_t *tid)
{
- return (au_to_process32(auid, euid, egid, ruid, rgid, pid, sid, tid));
+ return (au_to_process32(auid, euid, egid, ruid, rgid, pid, sid,
+ tid));
}
/*
@@ -768,8 +769,8 @@
}
token_t *
-au_to_process_ex(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid, gid_t rgid,
- pid_t pid, au_asid_t sid, au_tid_addr_t *tid)
+au_to_process_ex(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid,
+ gid_t rgid, pid_t pid, au_asid_t sid, au_tid_addr_t *tid)
{
return (au_to_process32_ex(auid, euid, egid, ruid, rgid, pid, sid,
@@ -870,7 +871,7 @@
*/
token_t *
au_to_socket_ex_32(u_int16_t lp, u_int16_t rp, struct sockaddr *la,
-struct sockaddr *ra)
+ struct sockaddr *ra)
{
errno = ENOTSUP;
@@ -903,7 +904,7 @@
GET_TOKEN_AREA(t, dptr, 107);
if (t == NULL)
return (NULL);
-
+
ADD_U_CHAR(dptr, AU_SOCK_UNIX_TOKEN);
/* BSM token has two bytes for family */
ADD_U_CHAR(dptr, 0);
@@ -985,7 +986,7 @@
au_to_sock_inet(struct sockaddr_in *so)
{
- return au_to_sock_inet32(so);
+ return (au_to_sock_inet32(so));
}
/*
@@ -1045,7 +1046,8 @@
pid_t pid, au_asid_t sid, au_tid_t *tid)
{
- return (au_to_subject32(auid, euid, egid, ruid, rgid, pid, sid, tid));
+ return (au_to_subject32(auid, euid, egid, ruid, rgid, pid, sid,
+ tid));
}
/*
@@ -1109,6 +1111,7 @@
au_to_subject_ex(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid, gid_t rgid,
pid_t pid, au_asid_t sid, au_tid_addr_t *tid)
{
+
return (au_to_subject32_ex(auid, euid, egid, ruid, rgid, pid, sid,
tid));
}
@@ -1262,7 +1265,7 @@
timems = tm.tv_usec/1000;
/* Add the timestamp */
ADD_U_INT32(dptr, tm.tv_sec);
- ADD_U_INT32(dptr, timems); /* We need time in ms */
+ ADD_U_INT32(dptr, timems); /* We need time in ms. */
return (t);
}
From owner-p4-projects@FreeBSD.ORG Mon Oct 17 07:50:21 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id B43F616A421; Mon, 17 Oct 2005 07:50:20 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 3AF6B16A41F
for ; Mon, 17 Oct 2005 07:50:20 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id BF4CA43D53
for ; Mon, 17 Oct 2005 07:50:19 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9H7oJim037571
for ; Mon, 17 Oct 2005 07:50:19 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9H7oJKL037567
for perforce@freebsd.org; Mon, 17 Oct 2005 07:50:19 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Mon, 17 Oct 2005 07:50:19 GMT
Message-Id: <200510170750.j9H7oJKL037567@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 85415 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 Oct 2005 07:50:21 -0000
http://perforce.freebsd.org/chv.cgi?CH=85415
Change 85415 by rwatson@rwatson_peppercorn on 2005/10/17 07:49:40
Synchronize kern_bsm_token.c to libbsm's bsm_token.c: update
copyright and credits, white space, style, general cleanup,
annotate some potential issues.
Affected files ...
.. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_token.c#10 edit
Differences ...
==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_token.c#10 (text+ko) ====
@@ -1,8 +1,11 @@
/*
* Copyright (c) 2004, Apple Computer, Inc.
- * Copyright (c) 2005 Robert N. M. Watson
+ * Copyright (c) 2005 SPARTA, Inc.
* All rights reserved.
*
+ * This code was developed in part by Robert N. M. Watson, Senior Principal
+ * Scientist, SPARTA, Inc.
+ *
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
@@ -54,28 +57,20 @@
#include
#include
-#define GET_TOKEN_AREA(t, dptr, length) \
- do {\
- t = (token_t *) malloc (sizeof(token_t), M_AUDIT, M_WAITOK);\
- if(t != NULL)\
- {\
- t->len = length;\
- t->t_data = (u_char *) malloc (length * sizeof(u_char),\
- M_AUDIT, M_WAITOK);\
- if((dptr = t->t_data) == NULL)\
- {\
- free(t, M_AUDIT);\
- t = NULL;\
- }\
- else\
- {\
- memset(dptr, 0, length);\
- }\
- }\
- }while(0)
+#define GET_TOKEN_AREA(t, dptr, length) do { \
+ t = malloc(sizeof(token_t), M_AUDIT, M_WAITOK); \
+ if (t != NULL) { \
+ t->len = length; \
+ t->t_data = malloc(length * sizeof(u_char), \
+ M_AUDIT, M_WAITOK); \
+ if ((dptr = t->t_data) == NULL) { \
+ free(t, M_AUDIT); \
+ t = NULL; \
+ } else \
+ memset(dptr, 0, length); \
+ } \
+} while (0)
-
-
/*
* token ID 1 byte
* argument # 1 byte
@@ -83,20 +78,20 @@
* text length 2 bytes
* text N bytes + 1 terminating NULL byte
*/
-token_t *au_to_arg32(char n, char *text, u_int32_t v)
+token_t *
+au_to_arg32(char n, char *text, u_int32_t v)
{
token_t *t;
u_char *dptr = NULL;
u_int16_t textlen;
- if(text == NULL)
- return NULL;
+ if (text == NULL)
+ return (NULL);
textlen = strlen(text);
GET_TOKEN_AREA(t, dptr, 9 + textlen);
- if(t == NULL) {
- return NULL;
- }
+ if (t == NULL)
+ return (NULL);
textlen += 1;
@@ -106,24 +101,24 @@
ADD_U_INT16(dptr, textlen);
ADD_STRING(dptr, text, textlen);
- return t;
+ return (t);
}
-token_t *au_to_arg64(char n, char *text, u_int64_t v)
+token_t *
+au_to_arg64(char n, char *text, u_int64_t v)
{
token_t *t;
u_char *dptr = NULL;
u_int16_t textlen;
- if(text == NULL)
- return NULL;
+ if (text == NULL)
+ return (NULL);
textlen = strlen(text);
GET_TOKEN_AREA(t, dptr, 13 + textlen);
- if(t == NULL) {
- return NULL;
- }
+ if (t == NULL)
+ return (NULL);
textlen += 1;
@@ -133,13 +128,15 @@
ADD_U_INT16(dptr, textlen);
ADD_STRING(dptr, text, textlen);
- return t;
+ return (t);
}
-token_t *au_to_arg(char n, char *text, u_int32_t v)
+token_t *
+au_to_arg(char n, char *text, u_int32_t v)
{
- return au_to_arg32(n, text, v);
+
+ return (au_to_arg32(n, text, v));
}
#if defined(_KERNEL) || defined(KERNEL)
@@ -152,20 +149,20 @@
* node ID 8 bytes
* device 4 bytes/8 bytes (32-bit/64-bit)
*/
-token_t *au_to_attr32(struct vnode_au_info *vni)
+token_t *
+au_to_attr32(struct vnode_au_info *vni)
{
token_t *t;
u_char *dptr = NULL;
u_int16_t pad0_16 = 0;
u_int16_t pad0_32 = 0;
- if(vni == NULL)
- return NULL;
+ if (vni == NULL)
+ return (NULL);
GET_TOKEN_AREA(t, dptr, 29);
- if(t == NULL) {
- return NULL;
- }
+ if (t == NULL)
+ return (NULL);
ADD_U_CHAR(dptr, AUT_ATTR32);
@@ -189,27 +186,28 @@
if (sizeof(vni->vn_fileid) == sizeof(uint32_t)) {
ADD_U_INT32(dptr, pad0_32);
ADD_U_INT32(dptr, vni->vn_fileid);
- } else if (sizeof(vni->vn_fileid) == sizeof(uint64_t)) {
+ } else if (sizeof(vni->vn_fileid) == sizeof(uint64_t))
ADD_U_INT64(dptr, vni->vn_fileid);
- } else {
+ else
ADD_U_INT64(dptr, 0LL);
- }
ADD_U_INT32(dptr, vni->vn_dev);
- return t;
+ return (t);
}
-token_t *au_to_attr64(struct vnode_au_info *vni)
+token_t *
+au_to_attr64(struct vnode_au_info *vni)
{
- return NULL;
+ return (NULL);
}
-token_t *au_to_attr(struct vnode_au_info *vni)
+token_t *
+au_to_attr(struct vnode_au_info *vni)
{
- return au_to_attr32(vni);
+ return (au_to_attr32(vni));
}
#endif /* !(defined(_KERNEL) || defined(KERNEL) */
@@ -220,37 +218,39 @@
* unit count 1 byte
* data items (depends on basic unit)
*/
-token_t *au_to_data(char unit_print, char unit_type,
- char unit_count, char *p)
+token_t *
+au_to_data(char unit_print, char unit_type, char unit_count, char *p)
{
token_t *t;
u_char *dptr = NULL;
size_t datasize, totdata;
- if(p == NULL)
- return NULL;
+ if (p == NULL)
+ return (NULL);
- /* Determine the size of the basic unit */
- switch(unit_type) {
- case AUR_BYTE: datasize = AUR_BYTE_SIZE;
- break;
+ /* Determine the size of the basic unit. */
+ switch (unit_type) {
+ case AUR_BYTE:
+ datasize = AUR_BYTE_SIZE;
+ break;
- case AUR_SHORT: datasize = AUR_SHORT_SIZE;
- break;
+ case AUR_SHORT:
+ datasize = AUR_SHORT_SIZE;
+ break;
- case AUR_LONG: datasize = AUR_LONG_SIZE;
- break;
+ case AUR_LONG:
+ datasize = AUR_LONG_SIZE;
+ break;
- default:
- return NULL;
+ default:
+ return (NULL);
}
totdata = datasize * unit_count;
GET_TOKEN_AREA(t, dptr, totdata + 4);
- if(t == NULL) {
- return NULL;
- }
+ if (t == NULL)
+ return (NULL);
ADD_U_CHAR(dptr, AUT_DATA);
ADD_U_CHAR(dptr, unit_print);
@@ -258,7 +258,7 @@
ADD_U_CHAR(dptr, unit_count);
ADD_MEM(dptr, p, totdata);
- return t;
+ return (t);
}
@@ -267,28 +267,30 @@
* status 4 bytes
* return value 4 bytes
*/
-token_t *au_to_exit(int retval, int err)
+token_t *
+au_to_exit(int retval, int err)
{
token_t *t;
u_char *dptr = NULL;
GET_TOKEN_AREA(t, dptr, 9);
- if(t == NULL) {
- return NULL;
- }
+ if (t == NULL)
+ return (NULL);
ADD_U_CHAR(dptr, AUT_EXIT);
ADD_U_INT32(dptr, err);
ADD_U_INT32(dptr, retval);
- return t;
+ return (t);
}
/*
*/
-token_t *au_to_groups(int *groups)
+token_t *
+au_to_groups(int *groups)
{
- return au_to_newgroups(BSM_MAX_GROUPS, groups);
+
+ return (au_to_newgroups(BSM_MAX_GROUPS, groups));
}
/*
@@ -296,53 +298,49 @@
* number groups 2 bytes
* group list count * 4 bytes
*/
-token_t *au_to_newgroups(u_int16_t n, gid_t *groups)
+token_t *
+au_to_newgroups(u_int16_t n, gid_t *groups)
{
token_t *t;
u_char *dptr = NULL;
int i;
- if(groups == NULL)
- return NULL;
+ if (groups == NULL)
+ return (NULL);
GET_TOKEN_AREA(t, dptr, n * 4 + 3);
- if(t == NULL) {
- return NULL;
- }
+ if (t == NULL)
+ return (NULL);
ADD_U_CHAR(dptr, AUT_NEWGROUPS);
ADD_U_INT16(dptr, n);
- for(i = 0; i < n; i++) {
- ADD_U_INT32(dptr, groups[i]);
- }
+ for (i = 0; i < n; i++)
+ ADD_U_INT32(dptr, groups[i]);
- return t;
+ return (t);
}
-
-
-
/*
* token ID 1 byte
* internet address 4 bytes
*/
-token_t *au_to_in_addr(struct in_addr *internet_addr)
+token_t *
+au_to_in_addr(struct in_addr *internet_addr)
{
token_t *t;
u_char *dptr = NULL;
- if(internet_addr == NULL)
- return NULL;
+ if (internet_addr == NULL)
+ return (NULL);
GET_TOKEN_AREA(t, dptr, 5);
- if(t == NULL) {
- return NULL;
- }
+ if (t == NULL)
+ return (NULL);
ADD_U_CHAR(dptr, AUT_IN_ADDR);
ADD_U_INT32(dptr, internet_addr->s_addr);
- return t;
+ return (t);
}
/*
@@ -350,19 +348,19 @@
* address type/length 4 bytes
* Address 16 bytes
*/
-token_t *au_to_in_addr_ex(struct in6_addr *internet_addr)
+token_t *
+au_to_in_addr_ex(struct in6_addr *internet_addr)
{
token_t *t;
u_char *dptr = NULL;
u_int32_t type = AF_INET6;
- if(internet_addr == NULL)
- return NULL;
+ if (internet_addr == NULL)
+ return (NULL);
GET_TOKEN_AREA(t, dptr, 21);
- if(t == NULL) {
- return NULL;
- }
+ if (t == NULL)
+ return (NULL);
ADD_U_CHAR(dptr, AUT_IN_ADDR_EX);
ADD_U_INT32(dptr, type);
@@ -371,25 +369,25 @@
ADD_U_INT32(dptr, internet_addr->__u6_addr.__u6_addr32[2]);
ADD_U_INT32(dptr, internet_addr->__u6_addr.__u6_addr32[3]);
- return t;
+ return (t);
}
/*
* token ID 1 byte
* ip header 20 bytes
*/
-token_t *au_to_ip(struct ip *ip)
+token_t *
+au_to_ip(struct ip *ip)
{
token_t *t;
u_char *dptr = NULL;
- if(ip == NULL)
- return NULL;
+ if (ip == NULL)
+ return (NULL);
GET_TOKEN_AREA(t, dptr, 21);
- if(t == NULL) {
- return NULL;
- }
+ if (t == NULL)
+ return (NULL);
ADD_U_CHAR(dptr, AUT_IP);
/*
@@ -397,7 +395,7 @@
*/
ADD_MEM(dptr, ip, sizeof(struct ip));
- return t;
+ return (t);
}
/*
@@ -405,22 +403,22 @@
* object ID type 1 byte
* object ID 4 bytes
*/
-token_t *au_to_ipc(char type, int id)
+token_t *
+au_to_ipc(char type, int id)
{
token_t *t;
u_char *dptr = NULL;
GET_TOKEN_AREA(t, dptr, 6);
- if(t == NULL) {
- return NULL;
- }
+ if (t == NULL)
+ return (NULL);
ADD_U_CHAR(dptr, AUT_IPC);
ADD_U_CHAR(dptr, type);
ADD_U_INT32(dptr, id);
- return t;
+ return (t);
}
/*
@@ -433,24 +431,23 @@
* slot sequence # 4 bytes
* key 4 bytes
*/
-token_t *au_to_ipc_perm(struct ipc_perm *perm)
+token_t *
+au_to_ipc_perm(struct ipc_perm *perm)
{
token_t *t;
u_char *dptr = NULL;
u_int16_t pad0 = 0;
- if(perm == NULL)
- return NULL;
+ if (perm == NULL)
+ return (NULL);
GET_TOKEN_AREA(t, dptr, 29);
- if(t == NULL) {
- return NULL;
- }
+ if (t == NULL)
+ return (NULL);
ADD_U_CHAR(dptr, AUT_IPC_PERM);
-
/*
* Darwin defines the sizes for ipc_perm members
* as 2 bytes; BSM defines 4 so pad with 0
@@ -475,7 +472,7 @@
ADD_U_INT32(dptr, perm->key);
- return t;
+ return (t);
}
@@ -483,60 +480,61 @@
* token ID 1 byte
* port IP address 2 bytes
*/
-token_t *au_to_iport(u_int16_t iport)
+token_t *
+au_to_iport(u_int16_t iport)
{
token_t *t;
u_char *dptr = NULL;
GET_TOKEN_AREA(t, dptr, 3);
- if(t == NULL) {
- return NULL;
- }
+ if (t == NULL)
+ return (NULL);
ADD_U_CHAR(dptr, AUT_IPORT);
ADD_U_INT16(dptr, iport);
- return t;
+ return (t);
}
/*
* token ID 1 byte
- * size 2 bytes
+ * size 2 bytes
* data size bytes
*/
-token_t *au_to_opaque(char *data, u_int16_t bytes)
+token_t *
+au_to_opaque(char *data, u_int16_t bytes)
{
token_t *t;
u_char *dptr = NULL;
- if((data == NULL) || (bytes <= 0))
- return NULL;
+ if ((data == NULL) || (bytes <= 0))
+ return (NULL);
GET_TOKEN_AREA(t, dptr, bytes + 3);
- if(t == NULL) {
- return NULL;
- }
+ if (t == NULL)
+ return (NULL);
ADD_U_CHAR(dptr, AUT_OPAQUE);
ADD_U_INT16(dptr, bytes);
ADD_MEM(dptr, data, bytes);
- return t;
+ return (t);
}
/*
- * token ID 1 byte
- * seconds of time 4 bytes
- * milliseconds of time 4 bytes
- * file name len 2 bytes
- * file pathname N bytes + 1 terminating NULL byte
+ * token ID 1 byte
+ * seconds of time 4 bytes
+ * milliseconds of time 4 bytes
+ * file name len 2 bytes
+ * file pathname N bytes + 1 terminating NULL byte
*/
+token_t *
#if defined(KERNEL) || defined(_KERNEL)
-token_t *au_to_file(char *file, struct timeval tm)
+au_to_file(char *file, struct timeval tm)
#else
-token_t *au_to_file(char *file)
+au_to_file(char *file)
#endif
{
token_t *t;
@@ -547,53 +545,50 @@
struct timeval tm;
struct timezone tzp;
- if(gettimeofday(&tm, &tzp) == -1) {
- return NULL;
- }
+ if (gettimeofday(&tm, &tzp) == -1)
+ return (NULL);
#endif
+ /* XXXRW: else ...? */
- if(file == NULL)
- return NULL;
+ if (file == NULL)
+ return (NULL);
filelen = strlen(file);
GET_TOKEN_AREA(t, dptr, filelen + 12);
- if(t == NULL) {
- return NULL;
- }
+ if (t == NULL)
+ return (NULL);
filelen += 1;
timems = tm.tv_usec/1000;
ADD_U_CHAR(dptr, AUT_OTHER_FILE32);
ADD_U_INT32(dptr, tm.tv_sec);
- ADD_U_INT32(dptr, timems); /* We need time in ms */
+ ADD_U_INT32(dptr, timems); /* We need time in ms. */
ADD_U_INT16(dptr, filelen);
ADD_STRING(dptr, file, filelen);
- return t;
-
+ return (t);
}
-
/*
* token ID 1 byte
* text length 2 bytes
* text N bytes + 1 terminating NULL byte
*/
-token_t *au_to_text(char *text)
+token_t *
+au_to_text(char *text)
{
token_t *t;
u_char *dptr = NULL;
u_int16_t textlen;
- if(text == NULL)
- return NULL;
+ if (text == NULL)
+ return (NULL);
textlen = strlen(text);
GET_TOKEN_AREA(t, dptr, textlen + 4);
- if(t == NULL) {
- return NULL;
- }
+ if (t == NULL)
+ return (NULL);
textlen += 1;
@@ -601,7 +596,7 @@
ADD_U_INT16(dptr, textlen);
ADD_STRING(dptr, text, textlen);
- return t;
+ return (t);
}
/*
@@ -609,20 +604,20 @@
* path length 2 bytes
* path N bytes + 1 terminating NULL byte
*/
-token_t *au_to_path(char *text)
+token_t *
+au_to_path(char *text)
{
token_t *t;
u_char *dptr = NULL;
u_int16_t textlen;
- if(text == NULL)
- return NULL;
+ if (text == NULL)
+ return (NULL);
textlen = strlen(text);
GET_TOKEN_AREA(t, dptr, textlen + 4);
- if(t == NULL) {
- return NULL;
- }
+ if (t == NULL)
+ return (NULL);
textlen += 1;
@@ -630,7 +625,7 @@
ADD_U_INT16(dptr, textlen);
ADD_STRING(dptr, text, textlen);
- return t;
+ return (t);
}
/*
@@ -646,21 +641,19 @@
* port ID 4 bytes/8 bytes (32-bit/64-bit value)
* machine address 4 bytes
*/
-token_t *au_to_process32(au_id_t auid, uid_t euid, gid_t egid,
- uid_t ruid, gid_t rgid, pid_t pid,
- au_asid_t sid, au_tid_t *tid)
+token_t *
+au_to_process32(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid, gid_t rgid,
+ pid_t pid, au_asid_t sid, au_tid_t *tid)
{
token_t *t;
u_char *dptr = NULL;
- if(tid == NULL)
- return NULL;
-
+ if (tid == NULL)
+ return (NULL);
GET_TOKEN_AREA(t, dptr, 37);
- if(t == NULL) {
- return NULL;
- }
+ if (t == NULL)
+ return (NULL);
ADD_U_CHAR(dptr, AUT_PROCESS32);
ADD_U_INT32(dptr, auid);
@@ -673,23 +666,24 @@
ADD_U_INT32(dptr, tid->port);
ADD_U_INT32(dptr, tid->machine);
- return t;
+ return (t);
}
-token_t *au_to_process64(au_id_t auid, uid_t euid, gid_t egid,
- uid_t ruid, gid_t rgid, pid_t pid,
- au_asid_t sid, au_tid_t *tid)
+token_t *
+au_to_process64(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid, gid_t rgid,
+ pid_t pid, au_asid_t sid, au_tid_t *tid)
{
- return NULL;
+ return (NULL);
}
-token_t *au_to_process(au_id_t auid, uid_t euid, gid_t egid,
- uid_t ruid, gid_t rgid, pid_t pid,
- au_asid_t sid, au_tid_t *tid)
+token_t *
+au_to_process(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid, gid_t rgid,
+ pid_t pid, au_asid_t sid, au_tid_t *tid)
{
- return au_to_process32(auid, euid, egid, ruid, rgid, pid,
- sid, tid);
+
+ return (au_to_process32(auid, euid, egid, ruid, rgid, pid, sid,
+ tid));
}
/*
@@ -706,20 +700,19 @@
* address type-len 4 bytes
* machine address 16 bytes
*/
-token_t *au_to_process32_ex(au_id_t auid, uid_t euid, gid_t egid,
- uid_t ruid, gid_t rgid, pid_t pid,
- au_asid_t sid, au_tid_addr_t *tid)
+token_t *
+au_to_process32_ex(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid,
+ gid_t rgid, pid_t pid, au_asid_t sid, au_tid_addr_t *tid)
{
token_t *t;
u_char *dptr = NULL;
- if(tid == NULL)
- return NULL;
+ if (tid == NULL)
+ return (NULL);
GET_TOKEN_AREA(t, dptr, 53);
- if(t == NULL) {
- return NULL;
- }
+ if (t == NULL)
+ return (NULL);
ADD_U_CHAR(dptr, AUT_PROCESS32_EX);
ADD_U_INT32(dptr, auid);
@@ -736,23 +729,24 @@
ADD_U_INT32(dptr, tid->at_addr[2]);
ADD_U_INT32(dptr, tid->at_addr[3]);
- return t;
+ return (t);
}
-token_t *au_to_process64_ex(au_id_t auid, uid_t euid, gid_t egid,
- uid_t ruid, gid_t rgid, pid_t pid,
- au_asid_t sid, au_tid_addr_t *tid)
+token_t *
+au_to_process64_ex(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid,
+ gid_t rgid, pid_t pid, au_asid_t sid, au_tid_addr_t *tid)
{
- return NULL;
+ return (NULL);
}
-token_t *au_to_process_ex(au_id_t auid, uid_t euid, gid_t egid,
- uid_t ruid, gid_t rgid, pid_t pid,
- au_asid_t sid, au_tid_addr_t *tid)
+token_t *
+au_to_process_ex(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid,
+ gid_t rgid, pid_t pid, au_asid_t sid, au_tid_addr_t *tid)
{
- return au_to_process32_ex(auid, euid, egid, ruid, rgid,
- pid, sid, tid);
+
+ return (au_to_process32_ex(auid, euid, egid, ruid, rgid, pid, sid,
+ tid));
}
/*
@@ -760,66 +754,65 @@
* error status 1 byte
* return value 4 bytes/8 bytes (32-bit/64-bit value)
*/
-token_t *au_to_return32(char status, u_int32_t ret)
+token_t *
+au_to_return32(char status, u_int32_t ret)
{
token_t *t;
u_char *dptr = NULL;
-
GET_TOKEN_AREA(t, dptr, 6);
- if(t == NULL) {
- return NULL;
- }
+ if (t == NULL)
+ return (NULL);
ADD_U_CHAR(dptr, AUT_RETURN32);
ADD_U_CHAR(dptr, status);
ADD_U_INT32(dptr, ret);
- return t;
+ return (t);
}
-token_t *au_to_return64(char status, u_int64_t ret)
+token_t *
+au_to_return64(char status, u_int64_t ret)
{
token_t *t;
u_char *dptr = NULL;
-
GET_TOKEN_AREA(t, dptr, 10);
- if(t == NULL) {
- return NULL;
- }
+ if (t == NULL)
+ return (NULL);
ADD_U_CHAR(dptr, AUT_RETURN64);
ADD_U_CHAR(dptr, status);
ADD_U_INT64(dptr, ret);
- return t;
+ return (t);
}
-token_t *au_to_return(char status, u_int32_t ret)
+token_t *
+au_to_return(char status, u_int32_t ret)
{
- return au_to_return32(status, ret);
+
+ return (au_to_return32(status, ret));
}
/*
* token ID 1 byte
* sequence number 4 bytes
*/
-token_t *au_to_seq(long audit_count)
+token_t *
+au_to_seq(long audit_count)
{
token_t *t;
u_char *dptr = NULL;
-
GET_TOKEN_AREA(t, dptr, 5);
- if(t == NULL) {
- return NULL;
- }
+ if (t == NULL)
+ return (NULL);
ADD_U_CHAR(dptr, AUT_SEQ);
ADD_U_INT32(dptr, audit_count);
- return t;
+ return (t);
}
/*
@@ -830,29 +823,31 @@
* remote port 2 bytes
* remote Internet address 4 bytes
*/
-token_t *au_to_socket(struct socket *so) {
+token_t *
+au_to_socket(struct socket *so)
+{
- return NULL;
+ /* XXXRW ... */
+ return (NULL);
}
/*
* Kernel-specific version of the above function.
*/
#ifdef _KERNEL
-token_t *kau_to_socket(struct socket_au_info *soi)
+token_t *
+kau_to_socket(struct socket_au_info *soi)
{
token_t *t;
u_char *dptr;
u_int16_t so_type;
- if(soi == NULL) {
- return NULL;
- }
+ if (soi == NULL)
+ return (NULL);
GET_TOKEN_AREA(t, dptr, 15);
- if(t == NULL) {
- return NULL;
- }
+ if (t == NULL)
+ return (NULL);
ADD_U_CHAR(dptr, AU_SOCK_TOKEN);
/* Coerce the socket type into a short value */
@@ -863,7 +858,7 @@
ADD_U_INT16(dptr, soi->so_rport);
ADD_U_INT32(dptr, soi->so_raddr);
- return t;
+ return (t);
}
#endif
@@ -877,18 +872,20 @@
* address type/length 4 bytes
* remote Internet address 4 bytes/16 bytes (IPv4/IPv6 address)
*/
-token_t *au_to_socket_ex_32(u_int16_t lp, u_int16_t rp,
- struct sockaddr *la, struct sockaddr *ra)
+token_t *
+au_to_socket_ex_32(u_int16_t lp, u_int16_t rp, struct sockaddr *la,
+ struct sockaddr *ra)
{
- return NULL;
+ return (NULL);
}
-token_t *au_to_socket_ex_128(u_int16_t lp, u_int16_t rp,
- struct sockaddr *la, struct sockaddr *ra)
+token_t *
+au_to_socket_ex_128(u_int16_t lp, u_int16_t rp, struct sockaddr *la,
+ struct sockaddr *ra)
>>> TRUNCATED FOR MAIL (1000 lines) <<<
From owner-p4-projects@FreeBSD.ORG Mon Oct 17 08:04:54 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id C35B216A421; Mon, 17 Oct 2005 08:04:53 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 5A4D816A41F
for ; Mon, 17 Oct 2005 08:04:53 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id 09C6343D48
for ; Mon, 17 Oct 2005 08:04:53 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9H84qnA038151
for ; Mon, 17 Oct 2005 08:04:52 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9H84qm2038148
for perforce@freebsd.org; Mon, 17 Oct 2005 08:04:52 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Mon, 17 Oct 2005 08:04:52 GMT
Message-Id: <200510170804.j9H84qm2038148@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 85416 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 Oct 2005 08:04:54 -0000
http://perforce.freebsd.org/chv.cgi?CH=85416
Change 85416 by rwatson@rwatson_peppercorn on 2005/10/17 08:03:52
Remove bsm_rec_count, bsm_free_q, and bsm_audit_mutex: since we are
sleeping M_WAITOK in the malloc, we are guaranteed to succeed, and
don't need to provide our own local cache. Working from the malloc
cache is actually faster than providing our own cache; if more
caching is required for this memory type, a UMA type can be added.
Style and white space cleanups.
Affected files ...
.. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#19 edit
Differences ...
==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#19 (text+ko) ====
@@ -43,23 +43,7 @@
#include
#include
-/* The number of BSM records allocated. */
-static int bsm_rec_count = 0;
-
/*
- * Records that can be recycled are maintained in the list given below
- * The maximum number of elements that can be present in this list is
- * bounded by MAX_AUDIT_RECORDS. Memory allocated for these records are never
- * freed
- */
-static LIST_HEAD(, au_record) bsm_free_q;
-
-/*
- * Lock for serializing access to the list of audit records.
- */
-static struct mtx bsm_audit_mutex;
-
-/*
* Forward declares.
*/
static void audit_sys_auditon(struct audit_record *ar,
@@ -71,9 +55,8 @@
void
kau_init(void)
{
+
printf("BSM auditing present\n");
- LIST_INIT(&bsm_free_q);
- mtx_init(&bsm_audit_mutex, "bsm_audit_mutex", NULL, MTX_DEF);
au_evclassmap_init();
}
@@ -88,72 +71,38 @@
static struct au_record *
kau_open(void)
{
- struct au_record *rec = NULL;
+ struct au_record *rec;
- /*
- * Find an unused record, remove it from the free list, mark as used
- */
- mtx_lock(&bsm_audit_mutex);
- if (!LIST_EMPTY(&bsm_free_q)) {
- rec = LIST_FIRST(&bsm_free_q);
- LIST_REMOVE(rec, au_rec_q);
- }
- mtx_unlock(&bsm_audit_mutex);
-
- if (rec == NULL) {
- mtx_lock(&bsm_audit_mutex);
- if (bsm_rec_count >= MAX_AUDIT_RECORDS) {
- /* XXX We need to increase size of MAX_AUDIT_RECORDS */
- mtx_unlock(&bsm_audit_mutex);
- return NULL;
- }
- mtx_unlock(&bsm_audit_mutex);
-
- /*
- * Create a new BSM kernel record.
- */
- rec = malloc(sizeof(*rec), M_AUDIT, M_WAITOK);
- rec->data = malloc(MAX_AUDIT_RECORD_SIZE * sizeof(u_char),
- M_AUDIT, M_WAITOK);
- mtx_lock(&bsm_audit_mutex);
- bsm_rec_count++;
- mtx_unlock(&bsm_audit_mutex);
- }
- memset(rec->data, 0, MAX_AUDIT_RECORD_SIZE);
-
+ rec = malloc(sizeof(*rec), M_AUDIT, M_WAITOK);
+ rec->data = malloc(MAX_AUDIT_RECORD_SIZE * sizeof(u_char), M_AUDIT,
+ M_WAITOK | M_ZERO);
TAILQ_INIT(&rec->token_q);
rec->len = 0;
rec->used = 1;
- return rec;
+ return (rec);
}
/*
- * Store the token with the record descriptor
- *
+ * Store the token with the record descriptor.
*/
static int
kau_write(struct au_record *rec, struct au_token *tok)
{
- if(tok == NULL) {
+
+ /* XXXRW: KASSERT, void return instead? */
+ if (tok == NULL)
return -1; /* Invalid Token */
- }
- /* Add the token to the tail */
- /*
- * XXX Not locking here -- we should not be writing to
- * XXX the same audit record from different threads
- */
TAILQ_INSERT_TAIL(&rec->token_q, tok, tokens);
-
- rec->len += tok->len; /* grow record length by token size bytes */
+ rec->len += tok->len;
- return 0;
+ return (0);
}
/*
- * Close out the audit record by adding the header token, identifying
- * any missing tokens. Write out the tokens to the record memory.
+ * Close out the audit record by adding the header token, identifying any
+ * missing tokens. Write out the tokens to the record memory.
*/
static void
kau_close(struct au_record *rec, struct timespec *ctime, short event)
@@ -164,22 +113,22 @@
struct timeval tm;
tot_rec_size = rec->len + BSM_HEADER_SIZE + BSM_TRAILER_SIZE;
- if(tot_rec_size <= MAX_AUDIT_RECORD_SIZE) {
+ if (tot_rec_size <= MAX_AUDIT_RECORD_SIZE) {
/* Create the header token */
tm.tv_usec = ctime->tv_nsec / 1000;
tm.tv_sec = ctime->tv_sec;
hdr = au_to_header32(tot_rec_size, event, 0, tm);
- if(hdr != NULL) {
+ if (hdr != NULL) {
/* Add to head of list */
TAILQ_INSERT_HEAD(&rec->token_q, hdr, tokens);
trail = au_to_trailer(tot_rec_size);
- if(trail != NULL) {
- TAILQ_INSERT_TAIL(&rec->token_q, trail, tokens);
- }
+ if (trail != NULL)
+ TAILQ_INSERT_TAIL(&rec->token_q, trail,
+ tokens);
}
- /* Serialize token data to the record */
+ /* Serialize token data to the record. */
rec->len = tot_rec_size;
dptr = rec->data;
@@ -194,7 +143,8 @@
* Free a BSM audit record by releasing all the tokens and clearing the
* audit record information.
*/
-void kau_free(struct au_record *rec)
+void
+kau_free(struct au_record *rec)
{
struct au_token *tok;
@@ -207,108 +157,96 @@
rec->used = 0;
rec->len = 0;
-
- mtx_lock(&bsm_audit_mutex);
-
- /* Add the record to the freelist */
- LIST_INSERT_HEAD(&bsm_free_q, rec, au_rec_q);
-
- mtx_unlock(&bsm_audit_mutex);
-
+ free(tok, M_AUDIT);
}
/*
* XXX May want turn some (or all) of these macros into functions in order
* to reduce the generated code sized.
*/
-#define UPATH1_TOKENS \
- do { \
- if (ar->ar_valid_arg & ARG_UPATH1) { \
- tok = au_to_path(ar->ar_arg_upath1); \
- kau_write(rec, tok); \
- } \
- } while (0)
+#define UPATH1_TOKENS do { \
+ if (ar->ar_valid_arg & ARG_UPATH1) { \
+ tok = au_to_path(ar->ar_arg_upath1); \
+ kau_write(rec, tok); \
+ } \
+} while (0)
-#define UPATH2_TOKENS \
- do { \
- if (ar->ar_valid_arg & ARG_UPATH2) { \
- tok = au_to_path(ar->ar_arg_upath2); \
- kau_write(rec, tok); \
- } \
- } while (0)
+#define UPATH2_TOKENS do { \
+ if (ar->ar_valid_arg & ARG_UPATH2) { \
+ tok = au_to_path(ar->ar_arg_upath2); \
+ kau_write(rec, tok); \
+ } \
+} while (0)
-#define KPATH1_VNODE1_TOKENS \
- do { \
- if (ar->ar_valid_arg & ARG_KPATH1) { \
- tok = au_to_path(ar->ar_arg_kpath1); \
- kau_write(rec, tok); \
- } \
- if (ar->ar_valid_arg & ARG_VNODE1) { \
- tok = au_to_attr32(&ar->ar_arg_vnode1);\
- kau_write(rec, tok); \
- } \
- } while (0)
+#define KPATH1_VNODE1_TOKENS do { \
+ if (ar->ar_valid_arg & ARG_KPATH1) { \
+ tok = au_to_path(ar->ar_arg_kpath1); \
+ kau_write(rec, tok); \
+ } \
+ if (ar->ar_valid_arg & ARG_VNODE1) { \
+ tok = au_to_attr32(&ar->ar_arg_vnode1); \
+ kau_write(rec, tok); \
+ } \
+} while (0)
-#define KPATH1_VNODE1_OR_UPATH1_TOKENS \
- do { \
- if (ar->ar_valid_arg & ARG_KPATH1) { \
- tok = au_to_path(ar->ar_arg_kpath1); \
- kau_write(rec, tok); \
- } else { \
- UPATH1_TOKENS; \
- } \
- if (ar->ar_valid_arg & ARG_VNODE1) { \
- tok = au_to_attr32(&ar->ar_arg_vnode1);\
- kau_write(rec, tok); \
- } \
- } while (0)
+#define KPATH1_VNODE1_OR_UPATH1_TOKENS do { \
+ if (ar->ar_valid_arg & ARG_KPATH1) { \
+ tok = au_to_path(ar->ar_arg_kpath1); \
+ kau_write(rec, tok); \
+ } else { \
+ UPATH1_TOKENS; \
+ } \
+ if (ar->ar_valid_arg & ARG_VNODE1) { \
+ tok = au_to_attr32(&ar->ar_arg_vnode1); \
+ kau_write(rec, tok); \
+ } \
+} while (0)
-#define KPATH2_VNODE2_TOKENS \
- do { \
- if (ar->ar_valid_arg & ARG_KPATH2) { \
- tok = au_to_path(ar->ar_arg_kpath2); \
- kau_write(rec, tok); \
- } \
- if (ar->ar_valid_arg & ARG_VNODE2) { \
- tok = au_to_attr32(&ar->ar_arg_vnode2);\
- kau_write(rec, tok); \
- } \
- } while (0)
+#define KPATH2_VNODE2_TOKENS do { \
+ if (ar->ar_valid_arg & ARG_KPATH2) { \
+ tok = au_to_path(ar->ar_arg_kpath2); \
+ kau_write(rec, tok); \
+ } \
+ if (ar->ar_valid_arg & ARG_VNODE2) { \
+ tok = au_to_attr32(&ar->ar_arg_vnode2); \
+ kau_write(rec, tok); \
+ } \
+} while (0)
-#define FD_KPATH1_VNODE1_TOKENS \
- do { \
- if (ar->ar_valid_arg & ARG_KPATH1) { \
- tok = au_to_path(ar->ar_arg_kpath1); \
- kau_write(rec, tok); \
- if (ar->ar_valid_arg & ARG_VNODE1) { \
- tok = au_to_attr32(&ar->ar_arg_vnode1);\
- kau_write(rec, tok); \
- } \
- } else { \
- tok = au_to_arg32(1, "no path: fd", ar->ar_arg_fd); \
- kau_write(rec, tok); \
- } \
- } while (0)
+#define FD_KPATH1_VNODE1_TOKENS do { \
+ if (ar->ar_valid_arg & ARG_KPATH1) { \
+ tok = au_to_path(ar->ar_arg_kpath1); \
+ kau_write(rec, tok); \
+ if (ar->ar_valid_arg & ARG_VNODE1) { \
+ tok = au_to_attr32(&ar->ar_arg_vnode1); \
+ kau_write(rec, tok); \
+ } \
+ } else { \
+ tok = au_to_arg32(1, "no path: fd", ar->ar_arg_fd); \
+ kau_write(rec, tok); \
+ } \
+} while (0)
-#define PROCESS_PID_TOKENS(argn) \
- do { \
+#define PROCESS_PID_TOKENS(argn) do { \
if ((ar->ar_arg_pid > 0) /* Kill a single process */ \
&& (ar->ar_valid_arg & ARG_PROCESS)) { \
- tok = au_to_process(ar->ar_arg_auid, ar->ar_arg_euid, \
- ar->ar_arg_egid, ar->ar_arg_ruid, \
- ar->ar_arg_rgid, ar->ar_arg_pid, \
- ar->ar_arg_asid, &ar->ar_arg_termid); \
+ tok = au_to_process(ar->ar_arg_auid, \
+ ar->ar_arg_euid, ar->ar_arg_egid, \
+ ar->ar_arg_ruid, ar->ar_arg_rgid, \
+ ar->ar_arg_pid, ar->ar_arg_asid, \
+ &ar->ar_arg_termid); \
kau_write(rec, tok); \
} else { \
- tok = au_to_arg32(argn, "process", ar->ar_arg_pid);\
+ tok = au_to_arg32(argn, "process", \
+ ar->ar_arg_pid); \
kau_write(rec, tok); \
} \
} while (0) \
/*
- * Implement auditing for the auditon() system call. The audit tokens
- * that are generated depend on the command that was sent into the
- * auditon() system call.
+ * Implement auditing for the auditon() system call. The audit tokens that
+ * are generated depend on the command that was sent into the auditon()
+ * system call.
*/
static void
audit_sys_auditon(struct audit_record *ar, struct au_record *rec)
@@ -325,6 +263,7 @@
ar->ar_arg_auditon.au_flags);
kau_write(rec, tok);
break;
+
case A_SETKMASK:
tok = au_to_arg32(2, "setkmask:as_success",
ar->ar_arg_auditon.au_mask.am_success);
@@ -333,6 +272,7 @@
ar->ar_arg_auditon.au_mask.am_failure);
kau_write(rec, tok);
break;
+
case A_SETQCTRL:
tok = au_to_arg32(3, "setqctrl:aq_hiwater",
ar->ar_arg_auditon.au_qctrl.aq_hiwater);
@@ -350,6 +290,7 @@
ar->ar_arg_auditon.au_qctrl.aq_minfree);
kau_write(rec, tok);
break;
+
case A_SETUMASK:
tok = au_to_arg32(3, "setumask:as_success",
ar->ar_arg_auditon.au_auinfo.ai_mask.am_success);
@@ -358,6 +299,7 @@
ar->ar_arg_auditon.au_auinfo.ai_mask.am_failure);
kau_write(rec, tok);
break;
+
case A_SETSMASK:
tok = au_to_arg32(3, "setsmask:as_success",
ar->ar_arg_auditon.au_auinfo.ai_mask.am_success);
@@ -366,6 +308,7 @@
ar->ar_arg_auditon.au_auinfo.ai_mask.am_failure);
kau_write(rec, tok);
break;
+
case A_SETCOND:
if (sizeof(ar->ar_arg_auditon.au_cond) > 4)
tok = au_to_arg64(3, "setcond",
@@ -375,6 +318,7 @@
ar->ar_arg_auditon.au_cond);
kau_write(rec, tok);
break;
+
case A_SETCLASS:
tok = au_to_arg32(2, "setclass:ec_event",
ar->ar_arg_auditon.au_evclass.ec_number);
@@ -383,6 +327,7 @@
ar->ar_arg_auditon.au_evclass.ec_class);
kau_write(rec, tok);
break;
+
case A_SETPMASK:
tok = au_to_arg32(2, "setpmask:as_success",
ar->ar_arg_auditon.au_aupinfo.ap_mask.am_success);
@@ -391,11 +336,13 @@
ar->ar_arg_auditon.au_aupinfo.ap_mask.am_failure);
kau_write(rec, tok);
break;
+
case A_SETFSIZE:
tok = au_to_arg32(2, "setfsize:filesize",
ar->ar_arg_auditon.au_fstat.af_filesz);
kau_write(rec, tok);
break;
+
default:
break;
}
@@ -1083,7 +1030,7 @@
printf("BSM conversion requested for unknown event %d\n",
ar->ar_event);
kau_free(rec);
- return BSM_NOAUDIT;
+ return (BSM_NOAUDIT);
}
kau_write(rec, subj_tok);
@@ -1093,7 +1040,7 @@
kau_close(rec, &ar->ar_endtime, ar->ar_event);
*pau = rec;
- return BSM_SUCCESS;
+ return (BSM_SUCCESS);
}
/*
From owner-p4-projects@FreeBSD.ORG Mon Oct 17 08:27:50 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 4976516A422; Mon, 17 Oct 2005 08:27:50 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id CCC5916A41F
for ; Mon, 17 Oct 2005 08:27:49 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id 7C2C543D5D
for ; Mon, 17 Oct 2005 08:27:49 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9H8Rnsl039072
for ; Mon, 17 Oct 2005 08:27:49 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9H8RnOS039069
for perforce@freebsd.org; Mon, 17 Oct 2005 08:27:49 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Mon, 17 Oct 2005 08:27:49 GMT
Message-Id: <200510170827.j9H8RnOS039069@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 85419 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 Oct 2005 08:27:51 -0000
http://perforce.freebsd.org/chv.cgi?CH=85419
Change 85419 by rwatson@rwatson_peppercorn on 2005/10/17 08:27:38
Lock down the event->class mapping table using a mutex. Staticize
the table and mutex. Further annotate functions. This code may
well now be safe on SMP.
Cleanups -- style, remove unused code, whitespace, etc.
Assert copyright.
Affected files ...
.. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_klib.c#15 edit
Differences ...
==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_klib.c#15 (text+ko) ====
@@ -1,5 +1,7 @@
/*
- * Copyright (c) 2004 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2004 Apple Computer, Inc.
+ * Copyright (c) 2005 Robert N. M. Watson
+ * All rights reserved.
*
* @APPLE_LICENSE_HEADER_START@
*
@@ -41,10 +43,7 @@
/*
* Hash table functions for the audit event number to event class mask
* mapping.
- *
- * XXXAUDIT: Locking?
*/
-
#define EVCLASSMAP_HASH_TABLE_SIZE 251
struct evclass_elem {
au_event_t event;
@@ -55,22 +54,31 @@
LIST_HEAD(, evclass_elem) head;
};
-struct evclass_list evclass_hash[EVCLASSMAP_HASH_TABLE_SIZE];
+static struct mtx evclass_mtx;
+static struct evclass_list evclass_hash[EVCLASSMAP_HASH_TABLE_SIZE];
-au_class_t au_event_class(au_event_t event)
+/*
+ * Look up the class for an audit event in the class mapping table.
+ */
+au_class_t
+au_event_class(au_event_t event)
{
-
struct evclass_list *evcl;
struct evclass_elem *evc;
+ au_class_t class;
+ mtx_lock(&evclass_mtx);
evcl = &evclass_hash[event % EVCLASSMAP_HASH_TABLE_SIZE];
-
- /* If an entry at our hash location matches the event, just return */
+ class = AU_NULL;
LIST_FOREACH(evc, &evcl->head, entry) {
- if (evc->event == event)
- return (evc->class);
+ if (evc->event == event) {
+ class = evc->class;
+ goto out;
+ }
}
- return (AU_NULL);
+out:
+ mtx_unlock(&evclass_mtx);
+ return (class);
}
/*
@@ -79,71 +87,83 @@
* XXX There is currently no constraints placed on the number of mappings.
* May want to either limit to a number, or in terms of memory usage.
*/
-void au_evclassmap_insert(au_event_t event, au_class_t class)
+void
+au_evclassmap_insert(au_event_t event, au_class_t class)
{
struct evclass_list *evcl;
- struct evclass_elem *evc;
+ struct evclass_elem *evc, *evc_new;
+
+ /*
+ * Pessimistically, always allocate storage before acquiring mutex.
+ * Free if there is already a mapping for this event.
+ */
+ evc_new = malloc(sizeof(*evc), M_AUDIT, M_WAITOK);
+ mtx_lock(&evclass_mtx);
evcl = &evclass_hash[event % EVCLASSMAP_HASH_TABLE_SIZE];
-
LIST_FOREACH(evc, &evcl->head, entry) {
if (evc->event == event) {
evc->class = class;
+ mtx_unlock(&evclass_mtx);
+ free(evc_new, M_AUDIT);
return;
}
}
- evc = malloc(sizeof(*evc), M_AUDIT, M_WAITOK);
- if (evc == NULL) {
- return;
- }
+ evc = evc_new;
evc->event = event;
evc->class = class;
LIST_INSERT_HEAD(&evcl->head, evc, entry);
-
+ mtx_unlock(&evclass_mtx);
}
-void au_evclassmap_init(void)
+void
+au_evclassmap_init(void)
{
int i;
- for (i = 0; i < EVCLASSMAP_HASH_TABLE_SIZE; i++) {
+
+ mtx_init(&evclass_mtx, "evclass_mtx", NULL, MTX_DEF);
+ for (i = 0; i < EVCLASSMAP_HASH_TABLE_SIZE; i++)
LIST_INIT(&evclass_hash[i].head);
- }
- /* Set up the initial event to class mapping for system calls. */
+ /*
+ * Set up the initial event to class mapping for system calls.
+ *
+ * XXXRW: Really, this should walk all possible audit events, not all
+ * native ABI system calls, as there may be audit events reachable
+ * only through non-native system calls. It also seems a shame to
+ * frob the mutex this early.
+ */
for (i = 0; i < SYS_MAXSYSCALL; i++) {
- if (sysent[i].sy_auevent != AUE_NULL) {
+ if (sysent[i].sy_auevent != AUE_NULL)
au_evclassmap_insert(sysent[i].sy_auevent, AU_NULL);
- }
}
-
}
/*
* Check whether an event is aditable by comparing the mask of classes this
* event is part of against the given mask.
- *
*/
-int au_preselect(au_event_t event, au_mask_t *mask_p, int sorf)
+int
+au_preselect(au_event_t event, au_mask_t *mask_p, int sorf)
{
au_class_t effmask = 0;
au_class_t ae_class;
- if(mask_p == NULL)
+ if (mask_p == NULL)
return (-1);
ae_class = au_event_class(event);
+
/*
* Perform the actual check of the masks against the event.
*/
- if(sorf & AU_PRS_SUCCESS) {
+ if (sorf & AU_PRS_SUCCESS)
effmask |= (mask_p->am_success & ae_class);
- }
- if(sorf & AU_PRS_FAILURE) {
+ if (sorf & AU_PRS_FAILURE)
effmask |= (mask_p->am_failure & ae_class);
- }
- if(effmask)
+ if (effmask)
return (1);
else
return (0);
@@ -152,12 +172,14 @@
/*
* Convert sysctl names and present arguments to events
*/
-au_event_t ctlname_to_sysctlevent(int name[], uint64_t valid_arg) {
+au_event_t
+ctlname_to_sysctlevent(int name[], uint64_t valid_arg)
+{
/* can't parse it - so return the worst case */
if ((valid_arg & (ARG_CTLNAME | ARG_LEN)) !=
(ARG_CTLNAME | ARG_LEN))
- return AUE_SYSCTL;
+ return (AUE_SYSCTL);
switch (name[0]) {
/* non-admin "lookups" treat them special */
@@ -174,7 +196,7 @@
case KERN_SAVED_IDS:
case KERN_OSRELDATE:
case KERN_DUMMY:
- return AUE_SYSCTL_NONADMIN;
+ return (AUE_SYSCTL_NONADMIN);
/* only treat the changeable controls as admin */
case KERN_MAXVNODES:
@@ -185,26 +207,26 @@
case KERN_HOSTID:
case KERN_SECURELVL:
case KERN_HOSTNAME:
-case KERN_VNODE:
-case KERN_PROC:
-case KERN_FILE:
-case KERN_PROF:
-case KERN_NISDOMAINNAME:
-case KERN_UPDATEINTERVAL:
-case KERN_NTP_PLL:
+ case KERN_VNODE:
+ case KERN_PROC:
+ case KERN_FILE:
+ case KERN_PROF:
+ case KERN_NISDOMAINNAME:
+ case KERN_UPDATEINTERVAL:
+ case KERN_NTP_PLL:
case KERN_BOOTFILE:
case KERN_DUMPDEV:
-case KERN_IPC:
-case KERN_PS_STRINGS:
-case KERN_USRSTACK:
+ case KERN_IPC:
+ case KERN_PS_STRINGS:
+ case KERN_USRSTACK:
case KERN_LOGSIGEXIT:
-case KERN_IOV_MAX:
-case KERN_MAXID:
- return (valid_arg & ARG_VALUE) ?
- AUE_SYSCTL : AUE_SYSCTL_NONADMIN;
+ case KERN_IOV_MAX:
+ case KERN_MAXID:
+ return ((valid_arg & ARG_VALUE) ?
+ AUE_SYSCTL : AUE_SYSCTL_NONADMIN);
default:
- return AUE_SYSCTL;
+ return (AUE_SYSCTL);
}
/* NOTREACHED */
}
@@ -213,52 +235,66 @@
* Convert an open flags specifier into a specific type of open event for
* auditing purposes.
*/
-au_event_t flags_and_error_to_openevent(int oflags, int error) {
+au_event_t
+flags_and_error_to_openevent(int oflags, int error) {
au_event_t aevent;
/* Need to check only those flags we care about. */
oflags = oflags & (O_RDONLY | O_CREAT | O_TRUNC | O_RDWR | O_WRONLY);
- /* These checks determine what flags are on with the condition
- * that ONLY that combination is on, and no other flags are on.
+ /*
+ * These checks determine what flags are on with the condition that
+ * ONLY that combination is on, and no other flags are on.
*/
switch (oflags) {
case O_RDONLY:
aevent = AUE_OPEN_R;
break;
+
case (O_RDONLY | O_CREAT):
aevent = AUE_OPEN_RC;
break;
+
case (O_RDONLY | O_CREAT | O_TRUNC):
aevent = AUE_OPEN_RTC;
break;
+
case (O_RDONLY | O_TRUNC):
aevent = AUE_OPEN_RT;
break;
+
case O_RDWR:
aevent = AUE_OPEN_RW;
break;
+
case (O_RDWR | O_CREAT):
aevent = AUE_OPEN_RWC;
break;
+
case (O_RDWR | O_CREAT | O_TRUNC):
aevent = AUE_OPEN_RWTC;
break;
+
case (O_RDWR | O_TRUNC):
aevent = AUE_OPEN_RWT;
break;
+
case O_WRONLY:
aevent = AUE_OPEN_W;
break;
+
case (O_WRONLY | O_CREAT):
aevent = AUE_OPEN_WC;
break;
+
case (O_WRONLY | O_CREAT | O_TRUNC):
aevent = AUE_OPEN_WTC;
break;
+
case (O_WRONLY | O_TRUNC):
aevent = AUE_OPEN_WT;
break;
+
default:
aevent = AUE_OPEN;
break;
@@ -279,107 +315,132 @@
if (error == ENOENT)
aevent = AUE_OPEN;
}
- return aevent;
+ return (aevent);
}
-/* Convert a MSGCTL command to a specific event. */
-int msgctl_to_event(int cmd)
+/*
+ * Convert a MSGCTL command to a specific event.
+ */
+int
+msgctl_to_event(int cmd)
{
+
switch (cmd) {
case IPC_RMID:
- return AUE_MSGCTL_RMID;
+ return (AUE_MSGCTL_RMID);
+
case IPC_SET:
- return AUE_MSGCTL_SET;
+ return (AUE_MSGCTL_SET);
+
case IPC_STAT:
- return AUE_MSGCTL_STAT;
+ return (AUE_MSGCTL_STAT);
+
default:
- return AUE_MSGCTL;
- /* We will audit a bad command */
+ /* We will audit a bad command */
+ return (AUE_MSGCTL);
}
}
-/* Convert a SEMCTL command to a specific event. */
-int semctl_to_event(int cmd)
+/*
+ * Convert a SEMCTL command to a specific event.
+ */
+int
+semctl_to_event(int cmd)
{
+
switch (cmd) {
case GETALL:
- return AUE_SEMCTL_GETALL;
+ return (AUE_SEMCTL_GETALL);
+
case GETNCNT:
- return AUE_SEMCTL_GETNCNT;
+ return (AUE_SEMCTL_GETNCNT);
+
case GETPID:
- return AUE_SEMCTL_GETPID;
+ return (AUE_SEMCTL_GETPID);
+
case GETVAL:
- return AUE_SEMCTL_GETVAL;
+ return (AUE_SEMCTL_GETVAL);
+
case GETZCNT:
- return AUE_SEMCTL_GETZCNT;
+ return (AUE_SEMCTL_GETZCNT);
+
case IPC_RMID:
- return AUE_SEMCTL_RMID;
+ return (AUE_SEMCTL_RMID);
+
case IPC_SET:
- return AUE_SEMCTL_SET;
+ return (AUE_SEMCTL_SET);
+
case SETALL:
- return AUE_SEMCTL_SETALL;
+ return (AUE_SEMCTL_SETALL);
+
case SETVAL:
- return AUE_SEMCTL_SETVAL;
+ return (AUE_SEMCTL_SETVAL);
+
case IPC_STAT:
- return AUE_SEMCTL_STAT;
+ return (AUE_SEMCTL_STAT);
+
default:
- return AUE_SEMCTL;
- /* We will audit a bad command */
+ /* We will audit a bad command */
+ return (AUE_SEMCTL);
}
}
-/* Convert a command for the auditon() system call to a audit event. */
-int auditon_command_event(int cmd)
+/*
+ * Convert a command for the auditon() system call to a audit event.
+ */
+int
+auditon_command_event(int cmd)
{
+
switch(cmd) {
case A_GETPOLICY:
- return AUE_AUDITON_GPOLICY;
- break;
+ return (AUE_AUDITON_GPOLICY);
+
case A_SETPOLICY:
- return AUE_AUDITON_SPOLICY;
- break;
+ return (AUE_AUDITON_SPOLICY);
+
case A_GETKMASK:
- return AUE_AUDITON_GETKMASK;
- break;
+ return (AUE_AUDITON_GETKMASK);
+
case A_SETKMASK:
- return AUE_AUDITON_SETKMASK;
- break;
+ return (AUE_AUDITON_SETKMASK);
+
case A_GETQCTRL:
- return AUE_AUDITON_GQCTRL;
- break;
+ return (AUE_AUDITON_GQCTRL);
+
case A_SETQCTRL:
- return AUE_AUDITON_SQCTRL;
- break;
+ return (AUE_AUDITON_SQCTRL);
+
case A_GETCWD:
- return AUE_AUDITON_GETCWD;
- break;
+ return (AUE_AUDITON_GETCWD);
+
case A_GETCAR:
- return AUE_AUDITON_GETCAR;
- break;
+ return (AUE_AUDITON_GETCAR);
+
case A_GETSTAT:
- return AUE_AUDITON_GETSTAT;
- break;
+ return (AUE_AUDITON_GETSTAT);
+
case A_SETSTAT:
- return AUE_AUDITON_SETSTAT;
- break;
+ return (AUE_AUDITON_SETSTAT);
+
case A_SETUMASK:
- return AUE_AUDITON_SETUMASK;
- break;
+ return (AUE_AUDITON_SETUMASK);
+
case A_SETSMASK:
- return AUE_AUDITON_SETSMASK;
- break;
+ return (AUE_AUDITON_SETSMASK);
+
case A_GETCOND:
- return AUE_AUDITON_GETCOND;
- break;
+ return (AUE_AUDITON_GETCOND);
+
case A_SETCOND:
- return AUE_AUDITON_SETCOND;
- break;
+ return (AUE_AUDITON_SETCOND);
+
case A_GETCLASS:
- return AUE_AUDITON_GETCLASS;
- break;
+ return (AUE_AUDITON_GETCLASS);
+
case A_SETCLASS:
- return AUE_AUDITON_SETCLASS;
- break;
+ return (AUE_AUDITON_SETCLASS);
+
case A_GETPINFO:
case A_SETPMASK:
case A_SETFSIZE:
@@ -388,8 +449,7 @@
case A_GETKAUDIT:
case A_SETKAUDIT:
default:
- return AUE_AUDITON; /* No special record */
- break;
+ return (AUE_AUDITON); /* No special record */
}
}
@@ -407,12 +467,8 @@
void
canon_path(struct thread *td, char *path, char *cpath)
{
-
char *bufp;
char *retbuf, *freebuf;
-#if 0
- int len;
-#endif
struct vnode *vnp;
struct filedesc *fdp;
int error, vfslocked;
From owner-p4-projects@FreeBSD.ORG Mon Oct 17 08:56:05 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id F2F5316A421; Mon, 17 Oct 2005 08:56:04 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 9333416A41F
for ; Mon, 17 Oct 2005 08:56:04 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id 7CEF543D75
for ; Mon, 17 Oct 2005 08:55:58 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9H8twIK047429
for ; Mon, 17 Oct 2005 08:55:58 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9H8tv0E047426
for perforce@freebsd.org; Mon, 17 Oct 2005 08:55:57 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Mon, 17 Oct 2005 08:55:57 GMT
Message-Id: <200510170855.j9H8tv0E047426@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 85421 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 Oct 2005 08:56:05 -0000
http://perforce.freebsd.org/chv.cgi?CH=85421
Change 85421 by rwatson@rwatson_peppercorn on 2005/10/17 08:54:57
style(9).
Affected files ...
.. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_private.h#8 edit
Differences ...
==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_private.h#8 (text+ko) ====
@@ -27,7 +27,7 @@
*/
#ifndef _BSM_AUDIT_PRIVATE_H
-#define _BSM_AUDIT_PRIVATE_H
+#define _BSM_AUDIT_PRIVATE_H
#ifndef _KERNEL
#error "no user-serviceable parts inside"
@@ -45,25 +45,25 @@
* Audit control variables that are usually set/read via system calls
* and used to control various aspects of auditing.
*/
-extern struct au_qctrl audit_qctrl;
-extern struct audit_fstat audit_fstat;
-extern struct au_mask audit_nae_mask;
-extern int audit_panic_on_write_fail;
-extern int audit_fail_stop;
+extern struct au_qctrl audit_qctrl;
+extern struct audit_fstat audit_fstat;
+extern struct au_mask audit_nae_mask;
+extern int audit_panic_on_write_fail;
+extern int audit_fail_stop;
/*
* Success/failure conditions for the conversion of a kernel audit record to
* BSM format.
*/
-#define BSM_SUCCESS 0
-#define BSM_FAILURE 1
-#define BSM_NOAUDIT 2
+#define BSM_SUCCESS 0
+#define BSM_FAILURE 1
+#define BSM_NOAUDIT 2
/*
* Defines for the kernel audit record k_ar_commit field.
*/
-#define AR_COMMIT_KERNEL 0x00000001U
-#define AR_COMMIT_USER 0x00000010U
+#define AR_COMMIT_KERNEL 0x00000001U
+#define AR_COMMIT_USER 0x00000010U
/*
* Audit data is generated as a stream of struct audit_record structures,
@@ -207,35 +207,35 @@
*/
void audit_abort(struct kaudit_record *ar);
void audit_commit(struct kaudit_record *ar, int error,
- int retval);
+ int retval);
struct kaudit_record *audit_new(int event, struct thread *td);
/*
* Functions relating to the conversion of internal kernel audit records to
* the BSM file format.
*/
-int kaudit_to_bsm(struct kaudit_record *kar,
+int kaudit_to_bsm(struct kaudit_record *kar,
struct au_record **pau);
-int bsm_rec_verify(void *rec);
+int bsm_rec_verify(void *rec);
/*
* Kernel versions of the libbsm audit record functions.
*/
-void kau_free(struct au_record *rec);
-void kau_init(void);
+void kau_free(struct au_record *rec);
+void kau_init(void);
/*
* Return values for pre-selection and post-selection decisions.
*/
-#define AU_PRS_SUCCESS 1
-#define AU_PRS_FAILURE 2
-#define AU_PRS_BOTH (AU_PRS_SUCCESS|AU_PRS_FAILURE)
+#define AU_PRS_SUCCESS 1
+#define AU_PRS_FAILURE 2
+#define AU_PRS_BOTH (AU_PRS_SUCCESS|AU_PRS_FAILURE)
/*
* Flags to use on audit files when opening and closing.
*/
-#define AUDIT_OPEN_FLAGS FWRITE | O_APPEND
-#define AUDIT_CLOSE_FLAGS FWRITE | O_APPEND
+#define AUDIT_OPEN_FLAGS (FWRITE | O_APPEND)
+#define AUDIT_CLOSE_FLAGS (FWRITE | O_APPEND)
#include
#include
@@ -247,34 +247,35 @@
* kernel implementations in order to save the copying of large kernel
* data structures. The prototypes of these functions are declared here.
*/
-token_t *kau_to_socket(struct socket_au_info *soi);
+token_t *kau_to_socket(struct socket_au_info *soi);
/*
* audit_klib prototypes
*/
-int au_preselect(au_event_t event, au_mask_t *mask_p, int sorf);
-au_event_t flags_and_error_to_openevent(int oflags, int error);
-void au_evclassmap_init(void);
-void au_evclassmap_insert(au_event_t event, au_class_t class);
-au_class_t au_event_class(au_event_t event);
-au_event_t ctlname_to_sysctlevent(int name[], uint64_t valid_arg);
-int auditon_command_event(int cmd);
-int msgctl_to_event(int cmd);
-int semctl_to_event(int cmr);
-void canon_path(struct thread *td, char *path, char *cpath);
+int au_preselect(au_event_t event, au_mask_t *mask_p, int sorf);
+au_event_t flags_and_error_to_openevent(int oflags, int error);
+void au_evclassmap_init(void);
+void au_evclassmap_insert(au_event_t event, au_class_t class);
+au_class_t au_event_class(au_event_t event);
+au_event_t ctlname_to_sysctlevent(int name[], uint64_t valid_arg);
+int auditon_command_event(int cmd);
+int msgctl_to_event(int cmd);
+int semctl_to_event(int cmr);
+void canon_path(struct thread *td, char *path, char *cpath);
/*
* Audit trigger events notify user space of kernel audit conditions
* asynchronously.
*/
-void audit_trigger_init(void);
-void send_trigger(unsigned int trigger);
+void audit_trigger_init(void);
+void send_trigger(unsigned int trigger);
/*
* General audit related functions.
*/
-struct kaudit_record * currecord(void);
-void audit_shutdown(void *arg, int howto);
-void audit_rotate_vnode(struct ucred *cred, struct vnode *vp);
+struct kaudit_record *currecord(void);
+void audit_shutdown(void *arg, int howto);
+void audit_rotate_vnode(struct ucred *cred,
+ struct vnode *vp);
#endif /* ! _BSM_AUDIT_PRIVATE_H */
From owner-p4-projects@FreeBSD.ORG Mon Oct 17 11:31:10 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id E86BB16A421; Mon, 17 Oct 2005 11:31:09 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id A71BB16A41F
for ; Mon, 17 Oct 2005 11:31:09 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id 64D8C43D46
for ; Mon, 17 Oct 2005 11:31:09 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9HBV9uN053585
for ; Mon, 17 Oct 2005 11:31:09 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9HBV7o9053582
for perforce@freebsd.org; Mon, 17 Oct 2005 11:31:07 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Mon, 17 Oct 2005 11:31:07 GMT
Message-Id: <200510171131.j9HBV7o9053582@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 85424 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 Oct 2005 11:31:10 -0000
http://perforce.freebsd.org/chv.cgi?CH=85424
Change 85424 by rwatson@rwatson_zoo on 2005/10/17 11:30:43
Minor white space tweaks.
Annotate a minor multi-threading race, in which one thread can give
up privilege while another thread modifies audit state, resulting
in a possibly inconsistent condition. This may not be significant.
Affected files ...
.. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_syscalls.c#4 edit
Differences ...
==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_syscalls.c#4 (text+ko) ====
@@ -174,6 +174,7 @@
if (audit_panic_on_write_fail)
udata.au_policy |= AUDIT_AHLT;
break;
+
case A_SETPOLICY:
if (udata.au_policy & ~(AUDIT_CNT|AUDIT_AHLT))
return (EINVAL);
@@ -183,15 +184,19 @@
audit_fail_stop = ((udata.au_policy & AUDIT_CNT) == 0);
audit_panic_on_write_fail = (udata.au_policy & AUDIT_AHLT);
break;
+
case A_GETKMASK:
udata.au_mask = audit_nae_mask;
break;
+
case A_SETKMASK:
audit_nae_mask = udata.au_mask;
break;
+
case A_GETQCTRL:
udata.au_qctrl = audit_qctrl;
break;
+
case A_SETQCTRL:
if ((udata.au_qctrl.aq_hiwater > AQ_MAXHIGH) ||
(udata.au_qctrl.aq_lowater >= udata.au_qctrl.aq_hiwater) ||
@@ -204,30 +209,38 @@
/* XXX The queue delay value isn't used with the kernel. */
audit_qctrl.aq_delay = -1;
break;
+
case A_GETCWD:
return (ENOSYS);
break;
+
case A_GETCAR:
return (ENOSYS);
break;
+
case A_GETSTAT:
return (ENOSYS);
break;
+
case A_SETSTAT:
return (ENOSYS);
break;
+
case A_SETUMASK:
return (ENOSYS);
break;
+
case A_SETSMASK:
return (ENOSYS);
break;
+
case A_GETCOND:
if (audit_enabled && !audit_suspended)
udata.au_cond = AUC_AUDITING;
else
udata.au_cond = AUC_NOAUDIT;
break;
+
case A_SETCOND:
if (udata.au_cond == AUC_NOAUDIT)
audit_suspended = 1;
@@ -238,14 +251,17 @@
audit_shutdown(NULL, 0);
}
break;
+
case A_GETCLASS:
udata.au_evclass.ec_class =
au_event_class(udata.au_evclass.ec_number);
break;
+
case A_SETCLASS:
au_evclassmap_insert(udata.au_evclass.ec_number,
udata.au_evclass.ec_class);
break;
+
case A_GETPINFO:
if (udata.au_aupinfo.ap_pid < 1)
return (EINVAL);
@@ -266,6 +282,7 @@
udata.au_aupinfo.ap_asid = tp->p_au->ai_asid;
PROC_UNLOCK(tp);
break;
+
case A_SETPMASK:
if (udata.au_aupinfo.ap_pid < 1)
return (EINVAL);
@@ -280,25 +297,31 @@
udata.au_aupinfo.ap_mask.am_failure;
PROC_UNLOCK(tp);
break;
+
case A_SETFSIZE:
if ((udata.au_fstat.af_filesz != 0) &&
(udata.au_fstat.af_filesz < MIN_AUDIT_FILE_SIZE))
return (EINVAL);
audit_fstat.af_filesz = udata.au_fstat.af_filesz;
break;
+
case A_GETFSIZE:
udata.au_fstat.af_filesz = audit_fstat.af_filesz;
udata.au_fstat.af_currsz = audit_fstat.af_currsz;
break;
+
case A_GETPINFO_ADDR:
return (ENOSYS);
break;
+
case A_GETKAUDIT:
return (ENOSYS);
break;
+
case A_SETKAUDIT:
return (ENOSYS);
break;
+
case A_SENDTRIGGER:
if ((udata.au_trigger < AUDIT_TRIGGER_MIN) ||
(udata.au_trigger > AUDIT_TRIGGER_MAX))
@@ -380,6 +403,8 @@
* XXXAUDIT: Might need locking to serialize audit events in the same
* order as change events? Or maybe that's an under-solveable
* problem.
+ *
+ * XXXRW: Test privilege while holding the proc lock?
*/
PROC_LOCK(td->td_proc);
td->td_proc->p_au->ai_auid = id;
@@ -428,6 +453,9 @@
audit_arg_auditinfo(&ai);
+ /*
+ * XXXRW: Test privilege while holding the proc lock?
+ */
PROC_LOCK(td->td_proc);
*td->td_proc->p_au = ai;
PROC_UNLOCK(td->td_proc);
@@ -534,54 +562,63 @@
int
audit(struct thread *td, struct audit_args *uap)
{
+
return (ENOSYS);
}
int
auditon(struct thread *td, struct auditon_args *uap)
{
+
return (ENOSYS);
}
int
getauid(struct thread *td, struct getauid_args *uap)
{
+
return (ENOSYS);
}
int
setauid(struct thread *td, struct setauid_args *uap)
{
+
return (ENOSYS);
}
int
getaudit(struct thread *td, struct getaudit_args *uap)
{
+
return (ENOSYS);
}
int
setaudit(struct thread *td, struct setaudit_args *uap)
{
+
return (ENOSYS);
}
int
getaudit_addr(struct thread *td, struct getaudit_addr_args *uap)
{
+
return (ENOSYS);
}
int
setaudit_addr(struct thread *td, struct setaudit_addr_args *uap)
{
+
return (ENOSYS);
}
int
auditctl(struct thread *td, struct auditctl_args *uap)
{
+
return (ENOSYS);
}
From owner-p4-projects@FreeBSD.ORG Mon Oct 17 11:36:17 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 8CCCE16A421; Mon, 17 Oct 2005 11:36:16 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 51D7016A41F
for ; Mon, 17 Oct 2005 11:36:16 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id 0116D43D46
for ; Mon, 17 Oct 2005 11:36:16 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9HBaFTQ053796
for ; Mon, 17 Oct 2005 11:36:15 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9HBaFfX053793
for perforce@freebsd.org; Mon, 17 Oct 2005 11:36:15 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Mon, 17 Oct 2005 11:36:15 GMT
Message-Id: <200510171136.j9HBaFfX053793@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 85425 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 Oct 2005 11:36:17 -0000
http://perforce.freebsd.org/chv.cgi?CH=85425
Change 85425 by rwatson@rwatson_zoo on 2005/10/17 11:35:46
Return EBUSY instead of EOPNOTSUPP if a second reader tries to
open /dev/audit at the same time as an existing one. This is
more consistent with other device nodes.
Minor style tweaks.
Affected files ...
.. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_trigger.c#5 edit
Differences ...
==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_trigger.c#5 (text+ko) ====
@@ -61,12 +61,8 @@
if (!audit_isopen) {
error = 0;
audit_isopen = 1;
- } else {
- /*
- * XXXRW: Why not EBUSY?
- */
- error = EOPNOTSUPP;
- }
+ } else
+ error = EBUSY;
mtx_unlock(&audit_trigger_mtx);
return (error);
@@ -77,7 +73,7 @@
{
struct trigger_info *ti;
- /* Drain the queue of pending trigger events */
+ /* Flush the queue of pending trigger events. */
mtx_lock(&audit_trigger_mtx);
audit_isopen = 0;
while (!TAILQ_EMPTY(&trigger_list)) {
@@ -86,6 +82,7 @@
free(ti, M_AUDIT);
}
mtx_unlock(&audit_trigger_mtx);
+
return (0);
}
@@ -97,8 +94,8 @@
mtx_lock(&audit_trigger_mtx);
while (TAILQ_EMPTY(&trigger_list)) {
- error = msleep(&trigger_list, &audit_trigger_mtx, PSOCK | PCATCH,
- "auditd", 0);
+ error = msleep(&trigger_list, &audit_trigger_mtx,
+ PSOCK | PCATCH, "auditd", 0);
if (error)
break;
}
@@ -111,15 +108,15 @@
error = uiomove(ti, sizeof *ti, uio);
free(ti, M_AUDIT);
}
- return error;
+ return (error);
}
static int
audit_write(struct cdev *dev, struct uio *uio, int ioflag)
{
- /* Communication is kernel->userspace only */
- return EOPNOTSUPP;
+ /* Communication is kernel->userspace only. */
+ return (EOPNOTSUPP);
}
void
@@ -127,7 +124,7 @@
{
struct trigger_info *ti;
- /* If nobody's listening, we ain't talking */
+ /* If nobody's listening, we ain't talking. */
if (!audit_isopen)
return;
@@ -140,7 +137,6 @@
TAILQ_INSERT_TAIL(&trigger_list, ti, list);
wakeup(&trigger_list);
mtx_unlock(&audit_trigger_mtx);
- return;
}
static struct cdevsw audit_cdevsw = {
@@ -164,7 +160,7 @@
audit_trigger_cdev_init(void *unused)
{
- /* Create the special device file */
+ /* Create the special device file. */
audit_dev = make_dev(&audit_cdevsw, 0, UID_ROOT, GID_KMEM, 0600,
AUDITDEV_FILENAME);
}
From owner-p4-projects@FreeBSD.ORG Mon Oct 17 11:38:20 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 9689916A422; Mon, 17 Oct 2005 11:38:19 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 6FD2F16A41F
for ; Mon, 17 Oct 2005 11:38:19 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id E8F1643D49
for ; Mon, 17 Oct 2005 11:38:18 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9HBcIb3053890
for ; Mon, 17 Oct 2005 11:38:18 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9HBcI5I053887
for perforce@freebsd.org; Mon, 17 Oct 2005 11:38:18 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Mon, 17 Oct 2005 11:38:18 GMT
Message-Id: <200510171138.j9HBcI5I053887@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 85426 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 Oct 2005 11:38:20 -0000
http://perforce.freebsd.org/chv.cgi?CH=85426
Change 85426 by rwatson@rwatson_zoo on 2005/10/17 11:37:46
In FreeBSD, we use KASSERT(), so don't need a local assertion
definition for the audit code (as was required in Darwin).
Affected files ...
.. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_audit.c#47 edit
Differences ...
==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_audit.c#47 (text+ko) ====
@@ -68,19 +68,6 @@
#define AUDIT_PRINTF(X)
#endif
-#if 0
-#if DIAGNOSTIC
-#if defined(assert)
-#undef assert()
-#endif
-#define assert(cond) \
- ((void) ((cond) ? 0 : panic("%s:%d (%s)", __FILE__, __LINE__, # cond)))
-#else
-#include
-#endif /* DIAGNOSTIC */
-#endif
-#define assert(x) KASSERT(x, x)
-
MALLOC_DEFINE(M_AUDIT, "audit", "Audit event records");
/*
From owner-p4-projects@FreeBSD.ORG Mon Oct 17 11:44:28 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id CD57D16A422; Mon, 17 Oct 2005 11:44:27 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 36C6C16A41F
for ; Mon, 17 Oct 2005 11:44:27 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id CA67A43D49
for ; Mon, 17 Oct 2005 11:44:26 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9HBiQuX054255
for ; Mon, 17 Oct 2005 11:44:26 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9HBiQSF054252
for perforce@freebsd.org; Mon, 17 Oct 2005 11:44:26 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Mon, 17 Oct 2005 11:44:26 GMT
Message-Id: <200510171144.j9HBiQSF054252@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 85427 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 Oct 2005 11:44:28 -0000
http://perforce.freebsd.org/chv.cgi?CH=85427
Change 85427 by rwatson@rwatson_zoo on 2005/10/17 11:43:30
Since kau_write() can't fail, and none of the callers check the
return value, change the function to return void rather than int.
Affected files ...
.. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#20 edit
Differences ...
==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#20 (text+ko) ====
@@ -86,18 +86,14 @@
/*
* Store the token with the record descriptor.
*/
-static int
+static void
kau_write(struct au_record *rec, struct au_token *tok)
{
- /* XXXRW: KASSERT, void return instead? */
- if (tok == NULL)
- return -1; /* Invalid Token */
+ KASSERT(tok != NULL, ("kau_write: tok == NULL"));
TAILQ_INSERT_TAIL(&rec->token_q, tok, tokens);
rec->len += tok->len;
-
- return (0);
}
/*
From owner-p4-projects@FreeBSD.ORG Mon Oct 17 11:51:37 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 8B7BB16A421; Mon, 17 Oct 2005 11:51:36 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 4852D16A41F
for ; Mon, 17 Oct 2005 11:51:36 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id DA2C143D46
for ; Mon, 17 Oct 2005 11:51:35 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9HBpZPn054660
for ; Mon, 17 Oct 2005 11:51:35 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9HBpZux054657
for perforce@freebsd.org; Mon, 17 Oct 2005 11:51:35 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Mon, 17 Oct 2005 11:51:35 GMT
Message-Id: <200510171151.j9HBpZux054657@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 85428 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 Oct 2005 11:51:37 -0000
http://perforce.freebsd.org/chv.cgi?CH=85428
Change 85428 by rwatson@rwatson_zoo on 2005/10/17 11:50:44
KASSERT non-NULL argument to kaudit_to_bsm() rather than returning
an error.
kau_open() doesn't fail.
Affected files ...
.. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#21 edit
Differences ...
==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#21 (text+ko) ====
@@ -362,15 +362,11 @@
struct audit_record *ar;
int ctr;
+ KASSERT(kar != NULL, ("kaudit_to_bsm: kar == NULL"));
+
*pau = NULL;
- if (kar == NULL)
- return (BSM_FAILURE);
-
ar = &kar->k_ar;
-
rec = kau_open();
- if (rec == NULL)
- return (BSM_FAILURE);
/* Create the subject token */
tid.port = ar->ar_subj_term.port;
From owner-p4-projects@FreeBSD.ORG Mon Oct 17 12:27:20 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id EE2D916A428; Mon, 17 Oct 2005 12:27:19 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 5B03616A424
for ; Mon, 17 Oct 2005 12:27:19 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id 1D78C43D46
for ; Mon, 17 Oct 2005 12:27:19 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9HCRJni056136
for ; Mon, 17 Oct 2005 12:27:19 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9HCRI8w056133
for perforce@freebsd.org; Mon, 17 Oct 2005 12:27:18 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Mon, 17 Oct 2005 12:27:18 GMT
Message-Id: <200510171227.j9HCRI8w056133@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 85429 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 Oct 2005 12:27:20 -0000
http://perforce.freebsd.org/chv.cgi?CH=85429
Change 85429 by rwatson@rwatson_zoo on 2005/10/17 12:26:38
Integrate bsm_token.c from OpenBSM to the TrustedBSD Audit3 contrib
tree:
White space and style cleanups.
Affected files ...
.. //depot/projects/trustedbsd/audit3/contrib/openbsm/libbsm/bsm_token.c#4 integrate
Differences ...
==== //depot/projects/trustedbsd/audit3/contrib/openbsm/libbsm/bsm_token.c#4 (text+ko) ====
@@ -164,7 +164,6 @@
return (NULL);
}
-
GET_TOKEN_AREA(t, dptr, 29);
if (t == NULL)
return (NULL);
@@ -214,7 +213,6 @@
{
return (au_to_attr32(vni));
-
}
#endif /* !(defined(_KERNEL) || defined(KERNEL) */
@@ -238,7 +236,7 @@
}
/* Determine the size of the basic unit. */
- switch(unit_type) {
+ switch (unit_type) {
case AUR_BYTE:
datasize = AUR_BYTE_SIZE;
break;
@@ -392,7 +390,8 @@
* token ID 1 byte
* ip header 20 bytes
*/
-token_t *au_to_ip(struct ip *ip)
+token_t *
+au_to_ip(struct ip *ip)
{
token_t *t;
u_char *dptr = NULL;
@@ -545,11 +544,11 @@
}
/*
- * token ID 1 byte
- * seconds of time 4 bytes
- * milliseconds of time 4 bytes
- * file name len 2 bytes
- * file pathname N bytes + 1 terminating NULL byte
+ * token ID 1 byte
+ * seconds of time 4 bytes
+ * milliseconds of time 4 bytes
+ * file name len 2 bytes
+ * file pathname N bytes + 1 terminating NULL byte
*/
token_t *
#if defined(KERNEL) || defined(_KERNEL)
@@ -708,7 +707,8 @@
pid_t pid, au_asid_t sid, au_tid_t *tid)
{
- return (au_to_process32(auid, euid, egid, ruid, rgid, pid, sid, tid));
+ return (au_to_process32(auid, euid, egid, ruid, rgid, pid, sid,
+ tid));
}
/*
@@ -769,8 +769,8 @@
}
token_t *
-au_to_process_ex(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid, gid_t rgid,
- pid_t pid, au_asid_t sid, au_tid_addr_t *tid)
+au_to_process_ex(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid,
+ gid_t rgid, pid_t pid, au_asid_t sid, au_tid_addr_t *tid)
{
return (au_to_process32_ex(auid, euid, egid, ruid, rgid, pid, sid,
@@ -871,7 +871,7 @@
*/
token_t *
au_to_socket_ex_32(u_int16_t lp, u_int16_t rp, struct sockaddr *la,
-struct sockaddr *ra)
+ struct sockaddr *ra)
{
errno = ENOTSUP;
@@ -904,7 +904,7 @@
GET_TOKEN_AREA(t, dptr, 107);
if (t == NULL)
return (NULL);
-
+
ADD_U_CHAR(dptr, AU_SOCK_UNIX_TOKEN);
/* BSM token has two bytes for family */
ADD_U_CHAR(dptr, 0);
@@ -986,7 +986,7 @@
au_to_sock_inet(struct sockaddr_in *so)
{
- return au_to_sock_inet32(so);
+ return (au_to_sock_inet32(so));
}
/*
@@ -1046,7 +1046,8 @@
pid_t pid, au_asid_t sid, au_tid_t *tid)
{
- return (au_to_subject32(auid, euid, egid, ruid, rgid, pid, sid, tid));
+ return (au_to_subject32(auid, euid, egid, ruid, rgid, pid, sid,
+ tid));
}
/*
@@ -1110,6 +1111,7 @@
au_to_subject_ex(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid, gid_t rgid,
pid_t pid, au_asid_t sid, au_tid_addr_t *tid)
{
+
return (au_to_subject32_ex(auid, euid, egid, ruid, rgid, pid, sid,
tid));
}
@@ -1263,7 +1265,7 @@
timems = tm.tv_usec/1000;
/* Add the timestamp */
ADD_U_INT32(dptr, tm.tv_sec);
- ADD_U_INT32(dptr, timems); /* We need time in ms */
+ ADD_U_INT32(dptr, timems); /* We need time in ms. */
return (t);
}
From owner-p4-projects@FreeBSD.ORG Mon Oct 17 12:30:27 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 06F3D16A421; Mon, 17 Oct 2005 12:30:27 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id A414316A420
for ; Mon, 17 Oct 2005 12:30:26 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id 361DF43D7D
for ; Mon, 17 Oct 2005 12:30:23 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9HCUN5L056313
for ; Mon, 17 Oct 2005 12:30:23 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9HCUMQe056310
for perforce@freebsd.org; Mon, 17 Oct 2005 12:30:22 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Mon, 17 Oct 2005 12:30:22 GMT
Message-Id: <200510171230.j9HCUMQe056310@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 85430 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 Oct 2005 12:30:27 -0000
http://perforce.freebsd.org/chv.cgi?CH=85430
Change 85430 by rwatson@rwatson_zoo on 2005/10/17 12:29:58
Flag ARG_EXIT when storing exit arguments in an audit record.
Affected files ...
.. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_arg.c#3 edit
Differences ...
==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_arg.c#3 (text+ko) ====
@@ -74,6 +74,7 @@
ar->k_ar.ar_arg_exitstatus = status;
ar->k_ar.ar_arg_exitretval = retval;
+ ar->k_ar.ar_valid_arg |= ARG_EXIT;
}
void
From owner-p4-projects@FreeBSD.ORG Mon Oct 17 13:00:01 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id E9C6016A421; Mon, 17 Oct 2005 13:00:00 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 751CC16A41F
for ; Mon, 17 Oct 2005 13:00:00 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id 2CA1543D46
for ; Mon, 17 Oct 2005 13:00:00 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9HD00gg064627
for ; Mon, 17 Oct 2005 13:00:00 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9HCxxna064624
for perforce@freebsd.org; Mon, 17 Oct 2005 12:59:59 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Mon, 17 Oct 2005 12:59:59 GMT
Message-Id: <200510171259.j9HCxxna064624@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 85432 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 Oct 2005 13:00:01 -0000
http://perforce.freebsd.org/chv.cgi?CH=85432
Change 85432 by rwatson@rwatson_zoo on 2005/10/17 12:59:03
In comparing /etc/audit_event and audit_kevents.h, annotate some
differences that will need to be resolved.
Affected files ...
.. //depot/projects/trustedbsd/openbsm/bsm/audit_kevents.h#22 edit
Differences ...
==== //depot/projects/trustedbsd/openbsm/bsm/audit_kevents.h#22 (text+ko) ====
@@ -177,9 +177,12 @@
#define AUE_SOCKET 183
#define AUE_SENDTO 184
#define AUE_PIPE 185
+ /* XXXRW: XXX Solaris socketpair()? */
+ /* XXXRW: XXX Solaris send()? */
#define AUE_SENDMSG 188
#define AUE_O_SEND AUE_SENDMSG
#define AUE_O_SENDMSG AUE_SENDMSG
+ /* XXXRW: XXX Solaris recv()? */
#define AUE_RECVMSG 190
#define AUE_O_RECV AUE_RECVMSG
#define AUE_O_RECVMSG AUE_RECVMSG
@@ -191,11 +194,15 @@
#define AUE_WRITE 195
#define AUE_WRITEV 196
#define AUE_READV 198
-#define AUE_SETUID 200
-#define AUE_STIME 201
-#define AUE_UTIME 202
-#define AUE_NICE 203
-#define AUE_SETGID 205
+ /* XXXRW: XXX Solaris old stat()? */
+#define AUE_SETUID 200 /* XXXRW: Solaris old setuid? */
+#define AUE_STIME 201 /* XXXRW: Solaris old stime? */
+#define AUE_UTIME 202 /* XXXRW: Solaris old utime? */
+#define AUE_NICE 203 /* XXXRW: Solaris old nice? */
+ /* XXXRW: Solaris old setpgrp? */
+#define AUE_SETGID 205 /* XXXRW: Solaris old setgid? */
+ /* XXXRW: Solaris readl? */
+ /* XXXRW: Solaris readvl()? */
#define AUE_DUP2 209
#define AUE_MMAP 210
#define AUE_O_MMAP AUE_MMAP
@@ -208,6 +215,7 @@
#define AUE_GETMSG 217
#define AUE_PUTPMSG 218
#define AUE_GETPMSG 219
+ /* XXXRW: Solaris sc placeholder? */
#define AUE_AUDITON_GETKMASK 221
#define AUE_AUDITON_SETKMASK 222
#define AUE_AUDITON_GETCWD 223
@@ -220,7 +228,7 @@
#define AUE_AUDITON_SETCOND 230
#define AUE_AUDITON_GETCLASS 231
#define AUE_AUDITON_SETCLASS 232
-#define AUE_UTSYS 233
+#define AUE_UTSSYS 233
#define AUE_STATVFS 234
#define AUE_XSTAT 235
#define AUE_LXSTAT 236
@@ -229,6 +237,7 @@
#define AUE_SYSINFO 239
#define AUE_XMKNOD 240
#define AUE_FORK1 241
+ /* XXXRW: Solaris modctl()? */
#define AUE_MODLOAD 243
#define AUE_MODUNLOAD 244
#define AUE_MODCONFIG 245
@@ -250,8 +259,8 @@
#define AUE_P_ONLINE 262
#define AUE_PROCESSOR_BIND 263
#define AUE_INST_SYNC 264
-#define AUE_SETAUDIT_ADDR 266
-#define AUE_GETAUDIT_ADDR 267
+#define AUE_SETAUDIT_ADDR 266 /* XXXRW: Not in audit_event */
+#define AUE_GETAUDIT_ADDR 267 /* XXXRW: Not in audit_event */
#define AUE_GETFSSTAT 301
#define AUE_PTRACE 302
#define AUE_CHFLAGS 303
@@ -267,8 +276,8 @@
#define AUE_SETTIMEOFDAY 313 /* XXX: See AUE_SOLARIS_SETTIMEOFDAY. */
#define AUE_FLOCK 314 /* XXX: See AUE_SOLARIS_FLOCK. */
#define AUE_MKFIFO 315
-#define AUE_POLL 316
-#define AUE_SOCKETPAIR 317
+#define AUE_POLL 316 /* XXXRW: Not in audit_event */
+#define AUE_SOCKETPAIR 317 /* XXXRW: What about 186? */
#define AUE_FUTIMES 318
#define AUE_SETSID 319
#define AUE_SETPRIVEXEC 320
@@ -309,8 +318,8 @@
#define AUE_PTHREADKILL 350
#define AUE_PTHREADSIGMASK 351
#define AUE_AUDITCTL 352
-#define AUE_RFORK 353
-#define AUE_LCHMOD 354
+#define AUE_RFORK 353 /* XXXRW: Not in audit_event */
+#define AUE_LCHMOD 354 /* XXXRW: Not in audit_event */
#define AUE_SWAPOFF 355
#define AUE_INITPROCESS 356
#define AUE_MAPFD 357
@@ -332,9 +341,9 @@
#define AUE_FHOPEN 373 /* FreeBSD */
#define AUE_FHSTAT 374 /* FreeBSD */
#define AUE_JAIL 375 /* FreeBSD */
-#define AUE_EACCESS 376 /* FreeBSD */
-#define AUE_KQUEUE 377 /* FreeBSD */
-#define AUE_KEVENT 378 /* FreeBSD */
+#define AUE_EACCESS 376 /* FreeBSD XXXRW: Not in audit_event */
+#define AUE_KQUEUE 377 /* FreeBSD XXXRW: Not in audit_event */
+#define AUE_KEVENT 378 /* FreeBSD XXXRW: Not in audit_event */
/*
* XXXRW: Values not yet assigned.
From owner-p4-projects@FreeBSD.ORG Mon Oct 17 13:26:34 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 6B32F16A421; Mon, 17 Oct 2005 13:26:34 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 1EFAC16A41F
for ; Mon, 17 Oct 2005 13:26:34 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id DD80E43D5C
for ; Mon, 17 Oct 2005 13:26:32 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9HDQWAF065659
for ; Mon, 17 Oct 2005 13:26:32 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9HDQWrg065656
for perforce@freebsd.org; Mon, 17 Oct 2005 13:26:32 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Mon, 17 Oct 2005 13:26:32 GMT
Message-Id: <200510171326.j9HDQWrg065656@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 85433 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 Oct 2005 13:26:35 -0000
http://perforce.freebsd.org/chv.cgi?CH=85433
Change 85433 by rwatson@rwatson_zoo on 2005/10/17 13:25:39
Move AUE_CHMOD from administrative to file modification class by
default.
Add AUE_{GET,SET}AUDIT_ADDR() events, administrative.
Add AUE_POLL, file access.
Add AUE_RFORK, process event.
Add AUE_LCHMOD, file attribute modify.
Add AUE_EACCESS, AUE_KQUEUE, AUE_KEVENT as file access. This may
well be the wrong class for KQ events.
Affected files ...
.. //depot/projects/trustedbsd/openbsm/etc/audit_event#4 edit
Differences ...
==== //depot/projects/trustedbsd/openbsm/etc/audit_event#4 (text+ko) ====
@@ -8,7 +8,7 @@
7:AUE_EXEC:exec(2):pc,ex
8:AUE_CHDIR:chdir(2):pc
9:AUE_MKNOD:mknod(2):ad
-10:AUE_CHMOD:chmod(2):ad
+10:AUE_CHMOD:chmod(2):fm
11:AUE_CHOWN:chown(2):fm
12:AUE_UMOUNT:umount(2) - old version:ad
13:AUE_JUNK:junk:no
@@ -225,6 +225,8 @@
262:AUE_P_ONLINE:p_online(2):ad
263:AUE_PROCESSOR_BIND:processor_bind(2):ad
264:AUE_INST_SYNC:inst_sync(2):ad
+266:AUE_SETAUDIT_ADDR:setaudit_addr(2):ad
+267:AUE_GETAUDIT_ADDR:getaudit_addr(2):ad
301:AUE_GETFSSTAT:getfsstat(2):fa
302:AUE_PTRACE:ptrace(2):pc
303:AUE_CHFLAGS:chflags(2):fm
@@ -240,6 +242,7 @@
313:AUE_SETTIMEOFDAY:settimeofday(2):ad
314:AUE_FLOCK:flock(2):fm
315:AUE_MKFIFO:mkfifo(2):fc
+316:AUE_POLL:poll(2):fa
317:AUE_SOCKETPAIR:socketpair(2):nt
318:AUE_FUTIMES:futimes(2):fm
319:AUE_SETSID:setsid(2):pc
@@ -276,6 +279,8 @@
350:AUE_PTHREADKILL:pthread_kill(2):pc
351:AUE_PTHREADSIGMASK:pthread_sigmask(2):pc
352:AUE_AUDITCTL:auditctl(2):ad
+353:AUE_RFORK:rfork(2):pc
+354:AUE_LCHMOD:lchmod(2):fm
355:AUE_SWAPOFF:swapoff():ad
356:AUE_INITPROCESS:init_process():pc
357:AUE_MAPFD:map_fd():fa
@@ -297,6 +302,9 @@
373:AUE_FHOPEN:fhopen(2):fa
374:AUE_FHSTAT:fhstat(2):fa
375:AUE_JAIL:jail(2):pc
+376:AUE_EACCESS:eaccess(2):fa
+377:AUE_KQUEUE:kqueue(2):fa
+378:AUE_KEVENT:kevent(2):fa
6152:AUE_login:login - local:lo
6153:AUE_logout:logout - local:lo
6159:AUE_su:su(1):lo
From owner-p4-projects@FreeBSD.ORG Mon Oct 17 13:28:36 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 7179216A421; Mon, 17 Oct 2005 13:28:36 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 33CA416A420
for ; Mon, 17 Oct 2005 13:28:36 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id AD6BB43D48
for ; Mon, 17 Oct 2005 13:28:35 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9HDSZ2N065821
for ; Mon, 17 Oct 2005 13:28:35 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9HDSZgJ065818
for perforce@freebsd.org; Mon, 17 Oct 2005 13:28:35 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Mon, 17 Oct 2005 13:28:35 GMT
Message-Id: <200510171328.j9HDSZgJ065818@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 85434 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 Oct 2005 13:28:37 -0000
http://perforce.freebsd.org/chv.cgi?CH=85434
Change 85434 by rwatson@rwatson_zoo on 2005/10/17 13:28:18
Remove bogus AU_WAIT4 entry in events list.
Re-annotate events list following update of audit_event.
Affected files ...
.. //depot/projects/trustedbsd/openbsm/bsm/audit_kevents.h#23 edit
Differences ...
==== //depot/projects/trustedbsd/openbsm/bsm/audit_kevents.h#23 (text+ko) ====
@@ -259,8 +259,8 @@
#define AUE_P_ONLINE 262
#define AUE_PROCESSOR_BIND 263
#define AUE_INST_SYNC 264
-#define AUE_SETAUDIT_ADDR 266 /* XXXRW: Not in audit_event */
-#define AUE_GETAUDIT_ADDR 267 /* XXXRW: Not in audit_event */
+#define AUE_SETAUDIT_ADDR 266
+#define AUE_GETAUDIT_ADDR 267
#define AUE_GETFSSTAT 301
#define AUE_PTRACE 302
#define AUE_CHFLAGS 303
@@ -276,7 +276,7 @@
#define AUE_SETTIMEOFDAY 313 /* XXX: See AUE_SOLARIS_SETTIMEOFDAY. */
#define AUE_FLOCK 314 /* XXX: See AUE_SOLARIS_FLOCK. */
#define AUE_MKFIFO 315
-#define AUE_POLL 316 /* XXXRW: Not in audit_event */
+#define AUE_POLL 316
#define AUE_SOCKETPAIR 317 /* XXXRW: What about 186? */
#define AUE_FUTIMES 318
#define AUE_SETSID 319
@@ -318,8 +318,8 @@
#define AUE_PTHREADKILL 350
#define AUE_PTHREADSIGMASK 351
#define AUE_AUDITCTL 352
-#define AUE_RFORK 353 /* XXXRW: Not in audit_event */
-#define AUE_LCHMOD 354 /* XXXRW: Not in audit_event */
+#define AUE_RFORK 353
+#define AUE_LCHMOD 354
#define AUE_SWAPOFF 355
#define AUE_INITPROCESS 356
#define AUE_MAPFD 357
@@ -341,9 +341,9 @@
#define AUE_FHOPEN 373 /* FreeBSD */
#define AUE_FHSTAT 374 /* FreeBSD */
#define AUE_JAIL 375 /* FreeBSD */
-#define AUE_EACCESS 376 /* FreeBSD XXXRW: Not in audit_event */
-#define AUE_KQUEUE 377 /* FreeBSD XXXRW: Not in audit_event */
-#define AUE_KEVENT 378 /* FreeBSD XXXRW: Not in audit_event */
+#define AUE_EACCESS 376 /* FreeBSD */
+#define AUE_KQUEUE 377 /* FreeBSD */
+#define AUE_KEVENT 378 /* FreeBSD */
/*
* XXXRW: Values not yet assigned.
@@ -443,6 +443,5 @@
#define AUE_TABLE AUE_NULL
#define AUE_WAITEVENT AUE_NULL
#define AUE_WATCHEVENT AUE_NULL
-#define AU_WAIT4 AUE_NULL
#endif /* !_BSM_AUDIT_KEVENTS_H_ */
From owner-p4-projects@FreeBSD.ORG Mon Oct 17 13:48:00 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 3366F16A422; Mon, 17 Oct 2005 13:48:00 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id B783A16A41F
for ; Mon, 17 Oct 2005 13:47:59 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id 7BDC643D46
for ; Mon, 17 Oct 2005 13:47:59 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9HDlxnJ066728
for ; Mon, 17 Oct 2005 13:47:59 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9HDlx9a066725
for perforce@freebsd.org; Mon, 17 Oct 2005 13:47:59 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Mon, 17 Oct 2005 13:47:59 GMT
Message-Id: <200510171347.j9HDlx9a066725@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 85435 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 Oct 2005 13:48:01 -0000
http://perforce.freebsd.org/chv.cgi?CH=85435
Change 85435 by rwatson@rwatson_zoo on 2005/10/17 13:47:11
Annotations, comments, and updates for the audit kernel event list
and audit_event class entries and mappings.
Affected files ...
.. //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/audit_kevents.h#9 integrate
.. //depot/projects/trustedbsd/audit3/contrib/openbsm/etc/audit_event#3 integrate
Differences ...
==== //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/audit_kevents.h#9 (text+ko) ====
@@ -177,9 +177,12 @@
#define AUE_SOCKET 183
#define AUE_SENDTO 184
#define AUE_PIPE 185
+ /* XXXRW: XXX Solaris socketpair()? */
+ /* XXXRW: XXX Solaris send()? */
#define AUE_SENDMSG 188
#define AUE_O_SEND AUE_SENDMSG
#define AUE_O_SENDMSG AUE_SENDMSG
+ /* XXXRW: XXX Solaris recv()? */
#define AUE_RECVMSG 190
#define AUE_O_RECV AUE_RECVMSG
#define AUE_O_RECVMSG AUE_RECVMSG
@@ -191,11 +194,15 @@
#define AUE_WRITE 195
#define AUE_WRITEV 196
#define AUE_READV 198
-#define AUE_SETUID 200
-#define AUE_STIME 201
-#define AUE_UTIME 202
-#define AUE_NICE 203
-#define AUE_SETGID 205
+ /* XXXRW: XXX Solaris old stat()? */
+#define AUE_SETUID 200 /* XXXRW: Solaris old setuid? */
+#define AUE_STIME 201 /* XXXRW: Solaris old stime? */
+#define AUE_UTIME 202 /* XXXRW: Solaris old utime? */
+#define AUE_NICE 203 /* XXXRW: Solaris old nice? */
+ /* XXXRW: Solaris old setpgrp? */
+#define AUE_SETGID 205 /* XXXRW: Solaris old setgid? */
+ /* XXXRW: Solaris readl? */
+ /* XXXRW: Solaris readvl()? */
#define AUE_DUP2 209
#define AUE_MMAP 210
#define AUE_O_MMAP AUE_MMAP
@@ -208,6 +215,7 @@
#define AUE_GETMSG 217
#define AUE_PUTPMSG 218
#define AUE_GETPMSG 219
+ /* XXXRW: Solaris sc placeholder? */
#define AUE_AUDITON_GETKMASK 221
#define AUE_AUDITON_SETKMASK 222
#define AUE_AUDITON_GETCWD 223
@@ -220,7 +228,7 @@
#define AUE_AUDITON_SETCOND 230
#define AUE_AUDITON_GETCLASS 231
#define AUE_AUDITON_SETCLASS 232
-#define AUE_UTSYS 233
+#define AUE_UTSSYS 233
#define AUE_STATVFS 234
#define AUE_XSTAT 235
#define AUE_LXSTAT 236
@@ -229,6 +237,7 @@
#define AUE_SYSINFO 239
#define AUE_XMKNOD 240
#define AUE_FORK1 241
+ /* XXXRW: Solaris modctl()? */
#define AUE_MODLOAD 243
#define AUE_MODUNLOAD 244
#define AUE_MODCONFIG 245
@@ -268,7 +277,7 @@
#define AUE_FLOCK 314 /* XXX: See AUE_SOLARIS_FLOCK. */
#define AUE_MKFIFO 315
#define AUE_POLL 316
-#define AUE_SOCKETPAIR 317
+#define AUE_SOCKETPAIR 317 /* XXXRW: What about 186? */
#define AUE_FUTIMES 318
#define AUE_SETSID 319
#define AUE_SETPRIVEXEC 320
@@ -434,6 +443,5 @@
#define AUE_TABLE AUE_NULL
#define AUE_WAITEVENT AUE_NULL
#define AUE_WATCHEVENT AUE_NULL
-#define AU_WAIT4 AUE_NULL
#endif /* !_BSM_AUDIT_KEVENTS_H_ */
==== //depot/projects/trustedbsd/audit3/contrib/openbsm/etc/audit_event#3 (text+ko) ====
@@ -8,7 +8,7 @@
7:AUE_EXEC:exec(2):pc,ex
8:AUE_CHDIR:chdir(2):pc
9:AUE_MKNOD:mknod(2):ad
-10:AUE_CHMOD:chmod(2):ad
+10:AUE_CHMOD:chmod(2):fm
11:AUE_CHOWN:chown(2):fm
12:AUE_UMOUNT:umount(2) - old version:ad
13:AUE_JUNK:junk:no
@@ -225,6 +225,8 @@
262:AUE_P_ONLINE:p_online(2):ad
263:AUE_PROCESSOR_BIND:processor_bind(2):ad
264:AUE_INST_SYNC:inst_sync(2):ad
+266:AUE_SETAUDIT_ADDR:setaudit_addr(2):ad
+267:AUE_GETAUDIT_ADDR:getaudit_addr(2):ad
301:AUE_GETFSSTAT:getfsstat(2):fa
302:AUE_PTRACE:ptrace(2):pc
303:AUE_CHFLAGS:chflags(2):fm
@@ -240,6 +242,7 @@
313:AUE_SETTIMEOFDAY:settimeofday(2):ad
314:AUE_FLOCK:flock(2):fm
315:AUE_MKFIFO:mkfifo(2):fc
+316:AUE_POLL:poll(2):fa
317:AUE_SOCKETPAIR:socketpair(2):nt
318:AUE_FUTIMES:futimes(2):fm
319:AUE_SETSID:setsid(2):pc
@@ -276,6 +279,8 @@
350:AUE_PTHREADKILL:pthread_kill(2):pc
351:AUE_PTHREADSIGMASK:pthread_sigmask(2):pc
352:AUE_AUDITCTL:auditctl(2):ad
+353:AUE_RFORK:rfork(2):pc
+354:AUE_LCHMOD:lchmod(2):fm
355:AUE_SWAPOFF:swapoff():ad
356:AUE_INITPROCESS:init_process():pc
357:AUE_MAPFD:map_fd():fa
@@ -297,6 +302,9 @@
373:AUE_FHOPEN:fhopen(2):fa
374:AUE_FHSTAT:fhstat(2):fa
375:AUE_JAIL:jail(2):pc
+376:AUE_EACCESS:eaccess(2):fa
+377:AUE_KQUEUE:kqueue(2):fa
+378:AUE_KEVENT:kevent(2):fa
6152:AUE_login:login - local:lo
6153:AUE_logout:logout - local:lo
6159:AUE_su:su(1):lo
From owner-p4-projects@FreeBSD.ORG Mon Oct 17 13:48:01 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 7958116A441; Mon, 17 Oct 2005 13:48:00 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 235AD16A420
for ; Mon, 17 Oct 2005 13:48:00 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id C78A743D48
for ; Mon, 17 Oct 2005 13:47:59 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9HDlxIT066734
for ; Mon, 17 Oct 2005 13:47:59 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9HDlxfw066731
for perforce@freebsd.org; Mon, 17 Oct 2005 13:47:59 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Mon, 17 Oct 2005 13:47:59 GMT
Message-Id: <200510171347.j9HDlxfw066731@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 85436 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes
List-Unsubscribe: