PERFORCE change 99910 for review

Wayne Salamon wsalamon at FreeBSD.org
Sat Jun 24 00:51:51 UTC 2006


http://perforce.freebsd.org/chv.cgi?CH=99910

Change 99910 by wsalamon at vh3 on 2006/06/24 00:51:45

	Audit the extattr system calls.
	Re-gen the system call table and related files with the AUE_ events.

Affected files ...

.. //depot/projects/trustedbsd/audit3/sys/bsm/audit_kevents.h#23 integrate
.. //depot/projects/trustedbsd/audit3/sys/kern/init_sysent.c#30 edit
.. //depot/projects/trustedbsd/audit3/sys/kern/syscalls.c#21 edit
.. //depot/projects/trustedbsd/audit3/sys/kern/syscalls.master#34 edit
.. //depot/projects/trustedbsd/audit3/sys/kern/vfs_syscalls.c#33 edit
.. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_bsm.c#15 edit
.. //depot/projects/trustedbsd/audit3/sys/sys/syscall.h#20 edit
.. //depot/projects/trustedbsd/audit3/sys/sys/syscall.mk#21 edit
.. //depot/projects/trustedbsd/audit3/sys/sys/sysproto.h#24 edit

Differences ...

==== //depot/projects/trustedbsd/audit3/sys/bsm/audit_kevents.h#23 (text+ko) ====

@@ -30,7 +30,7 @@
  *
  * @APPLE_BSD_LICENSE_HEADER_END@
  *
- * $P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_kevents.h#22 $
+ * $P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_kevents.h#23 $
  * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.5 2006/02/06 01:12:46 rwatson Exp $
  */
 
@@ -384,7 +384,24 @@
 #define	AUE_ACL_DELETE_FD		403	/* FreeBSD. */
 #define	AUE_ACL_CHECK_FILE		404	/* FreeBSD. */
 #define	AUE_ACL_CHECK_FD		405	/* FreeBSD. */
-#define	AUE_SYSARCH			406	/* FreeBSD. */
+#define	AUE_ACL_GET_LINK		406	/* FreeBSD. */
+#define	AUE_ACL_SET_LINK		407	/* FreeBSD. */
+#define	AUE_ACL_DELETE_LINK		408	/* FreeBSD. */
+#define	AUE_ACL_CHECK_LINK		409	/* FreeBSD. */
+#define	AUE_SYSARCH			410	/* FreeBSD. */
+#define	AUE_EXTATTRCTL			411	/* FreeBSD. */
+#define	AUE_EXTATTR_GET_FILE		412	/* FreeBSD. */
+#define	AUE_EXTATTR_SET_FILE		413	/* FreeBSD. */
+#define	AUE_EXTATTR_LIST_FILE		414	/* FreeBSD. */
+#define	AUE_EXTATTR_DELETE_FILE		415	/* FreeBSD. */
+#define	AUE_EXTATTR_GET_FD		416	/* FreeBSD. */
+#define	AUE_EXTATTR_SET_FD		417	/* FreeBSD. */
+#define	AUE_EXTATTR_LIST_FD		418	/* FreeBSD. */
+#define	AUE_EXTATTR_DELETE_FD		419	/* FreeBSD. */
+#define	AUE_EXTATTR_GET_LINK		420	/* FreeBSD. */
+#define	AUE_EXTATTR_SET_LINK		421	/* FreeBSD. */
+#define	AUE_EXTATTR_LIST_LINK		422	/* FreeBSD. */
+#define	AUE_EXTATTR_DELETE_LINK		423	/* FreeBSD. */
 
 /*
  * Darwin BSM uses a number of AUE_O_* definitions, which are aliased to the

==== //depot/projects/trustedbsd/audit3/sys/kern/init_sysent.c#30 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call switch table.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/kern/init_sysent.c,v 1.211 2006/03/23 08:48:37 davidxu Exp $
- * created from FreeBSD: src/sys/kern/syscalls.master,v 1.213 2006/03/23 08:46:41 davidxu Exp 
+ * $FreeBSD$
+ * created from FreeBSD: src/sys/kern/syscalls.master,v 1.215 2006/03/28 14:32:37 des Exp 
  */
 
 #include "opt_compat.h"
@@ -384,10 +384,10 @@
 	{ SYF_MPSAFE | AS(__acl_delete_fd_args), (sy_call_t *)__acl_delete_fd, AUE_NULL },	/* 352 = __acl_delete_fd */
 	{ SYF_MPSAFE | AS(__acl_aclcheck_file_args), (sy_call_t *)__acl_aclcheck_file, AUE_NULL },	/* 353 = __acl_aclcheck_file */
 	{ SYF_MPSAFE | AS(__acl_aclcheck_fd_args), (sy_call_t *)__acl_aclcheck_fd, AUE_NULL },	/* 354 = __acl_aclcheck_fd */
-	{ SYF_MPSAFE | AS(extattrctl_args), (sy_call_t *)extattrctl, AUE_NULL },	/* 355 = extattrctl */
-	{ SYF_MPSAFE | AS(extattr_set_file_args), (sy_call_t *)extattr_set_file, AUE_NULL },	/* 356 = extattr_set_file */
-	{ SYF_MPSAFE | AS(extattr_get_file_args), (sy_call_t *)extattr_get_file, AUE_NULL },	/* 357 = extattr_get_file */
-	{ SYF_MPSAFE | AS(extattr_delete_file_args), (sy_call_t *)extattr_delete_file, AUE_NULL },	/* 358 = extattr_delete_file */
+	{ SYF_MPSAFE | AS(extattrctl_args), (sy_call_t *)extattrctl, AUE_EXTATTRCTL },	/* 355 = extattrctl */
+	{ SYF_MPSAFE | AS(extattr_set_file_args), (sy_call_t *)extattr_set_file, AUE_EXTATTR_SET_FILE },	/* 356 = extattr_set_file */
+	{ SYF_MPSAFE | AS(extattr_get_file_args), (sy_call_t *)extattr_get_file, AUE_EXTATTR_GET_FILE },	/* 357 = extattr_get_file */
+	{ SYF_MPSAFE | AS(extattr_delete_file_args), (sy_call_t *)extattr_delete_file, AUE_EXTATTR_DELETE_FILE },	/* 358 = extattr_delete_file */
 	{ SYF_MPSAFE | AS(aio_waitcomplete_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 359 = aio_waitcomplete */
 	{ SYF_MPSAFE | AS(getresuid_args), (sy_call_t *)getresuid, AUE_GETRESUID },	/* 360 = getresuid */
 	{ SYF_MPSAFE | AS(getresgid_args), (sy_call_t *)getresgid, AUE_GETRESGID },	/* 361 = getresgid */
@@ -400,9 +400,9 @@
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 368 = __cap_set_fd */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 369 = __cap_set_file */
 	{ AS(nosys_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 370 = lkmressys */
-	{ SYF_MPSAFE | AS(extattr_set_fd_args), (sy_call_t *)extattr_set_fd, AUE_NULL },	/* 371 = extattr_set_fd */
-	{ SYF_MPSAFE | AS(extattr_get_fd_args), (sy_call_t *)extattr_get_fd, AUE_NULL },	/* 372 = extattr_get_fd */
-	{ SYF_MPSAFE | AS(extattr_delete_fd_args), (sy_call_t *)extattr_delete_fd, AUE_NULL },	/* 373 = extattr_delete_fd */
+	{ SYF_MPSAFE | AS(extattr_set_fd_args), (sy_call_t *)extattr_set_fd, AUE_EXTATTR_SET_FD },	/* 371 = extattr_set_fd */
+	{ SYF_MPSAFE | AS(extattr_get_fd_args), (sy_call_t *)extattr_get_fd, AUE_EXTATTR_GET_FD },	/* 372 = extattr_get_fd */
+	{ SYF_MPSAFE | AS(extattr_delete_fd_args), (sy_call_t *)extattr_delete_fd, AUE_EXTATTR_DELETE_FD },	/* 373 = extattr_delete_fd */
 	{ SYF_MPSAFE | AS(__setugid_args), (sy_call_t *)__setugid, AUE_NULL },	/* 374 = __setugid */
 	{ AS(nfsclnt_args), (sy_call_t *)nosys, AUE_NULL },	/* 375 = nfsclnt */
 	{ SYF_MPSAFE | AS(eaccess_args), (sy_call_t *)eaccess, AUE_EACCESS },	/* 376 = eaccess */
@@ -441,9 +441,9 @@
 	{ SYF_MPSAFE | AS(__mac_get_pid_args), (sy_call_t *)__mac_get_pid, AUE_NULL },	/* 409 = __mac_get_pid */
 	{ SYF_MPSAFE | AS(__mac_get_link_args), (sy_call_t *)__mac_get_link, AUE_NULL },	/* 410 = __mac_get_link */
 	{ SYF_MPSAFE | AS(__mac_set_link_args), (sy_call_t *)__mac_set_link, AUE_NULL },	/* 411 = __mac_set_link */
-	{ SYF_MPSAFE | AS(extattr_set_link_args), (sy_call_t *)extattr_set_link, AUE_NULL },	/* 412 = extattr_set_link */
-	{ SYF_MPSAFE | AS(extattr_get_link_args), (sy_call_t *)extattr_get_link, AUE_NULL },	/* 413 = extattr_get_link */
-	{ SYF_MPSAFE | AS(extattr_delete_link_args), (sy_call_t *)extattr_delete_link, AUE_NULL },	/* 414 = extattr_delete_link */
+	{ SYF_MPSAFE | AS(extattr_set_link_args), (sy_call_t *)extattr_set_link, AUE_EXTATTR_SET_LINK },	/* 412 = extattr_set_link */
+	{ SYF_MPSAFE | AS(extattr_get_link_args), (sy_call_t *)extattr_get_link, AUE_EXTATTR_GET_LINK },	/* 413 = extattr_get_link */
+	{ SYF_MPSAFE | AS(extattr_delete_link_args), (sy_call_t *)extattr_delete_link, AUE_EXTATTR_DELETE_LINK },	/* 414 = extattr_delete_link */
 	{ SYF_MPSAFE | AS(__mac_execve_args), (sy_call_t *)__mac_execve, AUE_NULL },	/* 415 = __mac_execve */
 	{ SYF_MPSAFE | AS(sigaction_args), (sy_call_t *)sigaction, AUE_SIGACTION },	/* 416 = sigaction */
 	{ SYF_MPSAFE | AS(sigreturn_args), (sy_call_t *)sigreturn, AUE_SIGRETURN },	/* 417 = sigreturn */
@@ -466,9 +466,9 @@
 	{ SYF_MPSAFE | AS(_umtx_lock_args), (sy_call_t *)_umtx_lock, AUE_NULL },	/* 434 = _umtx_lock */
 	{ SYF_MPSAFE | AS(_umtx_unlock_args), (sy_call_t *)_umtx_unlock, AUE_NULL },	/* 435 = _umtx_unlock */
 	{ SYF_MPSAFE | AS(jail_attach_args), (sy_call_t *)jail_attach, AUE_NULL },	/* 436 = jail_attach */
-	{ SYF_MPSAFE | AS(extattr_list_fd_args), (sy_call_t *)extattr_list_fd, AUE_NULL },	/* 437 = extattr_list_fd */
-	{ SYF_MPSAFE | AS(extattr_list_file_args), (sy_call_t *)extattr_list_file, AUE_NULL },	/* 438 = extattr_list_file */
-	{ SYF_MPSAFE | AS(extattr_list_link_args), (sy_call_t *)extattr_list_link, AUE_NULL },	/* 439 = extattr_list_link */
+	{ SYF_MPSAFE | AS(extattr_list_fd_args), (sy_call_t *)extattr_list_fd, AUE_EXTATTR_LIST_FD },	/* 437 = extattr_list_fd */
+	{ SYF_MPSAFE | AS(extattr_list_file_args), (sy_call_t *)extattr_list_file, AUE_EXTATTR_LIST_FILE },	/* 438 = extattr_list_file */
+	{ SYF_MPSAFE | AS(extattr_list_link_args), (sy_call_t *)extattr_list_link, AUE_EXTATTR_LIST_LINK },	/* 439 = extattr_list_link */
 	{ SYF_MPSAFE | AS(kse_switchin_args), (sy_call_t *)kse_switchin, AUE_NULL },	/* 440 = kse_switchin */
 	{ SYF_MPSAFE | AS(ksem_timedwait_args), (sy_call_t *)lkmressys, AUE_NULL },	/* 441 = ksem_timedwait */
 	{ SYF_MPSAFE | AS(thr_suspend_args), (sy_call_t *)thr_suspend, AUE_NULL },	/* 442 = thr_suspend */

==== //depot/projects/trustedbsd/audit3/sys/kern/syscalls.c#21 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call names.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/kern/syscalls.c,v 1.195 2006/03/23 08:48:37 davidxu Exp $
- * created from FreeBSD: src/sys/kern/syscalls.master,v 1.213 2006/03/23 08:46:41 davidxu Exp 
+ * $FreeBSD$
+ * created from FreeBSD: src/sys/kern/syscalls.master,v 1.215 2006/03/28 14:32:37 des Exp 
  */
 
 const char *syscallnames[] = {

==== //depot/projects/trustedbsd/audit3/sys/kern/syscalls.master#34 (text+ko) ====

@@ -610,24 +610,26 @@
 				    acl_type_t type, struct acl *aclp); }
 350	AUE_NULL	MSTD	{ int __acl_set_fd(int filedes, \
 				    acl_type_t type, struct acl *aclp); }
-351	AUE_NULL	MSTD	{ int __acl_delete_file(const char *path, \
-				    acl_type_t type); }
+351	AUE_NULL	MSTD	{ int __acl_delete_file( \
+				    const char *path, acl_type_t type); }
 352	AUE_NULL	MSTD	{ int __acl_delete_fd(int filedes, \
 				    acl_type_t type); }
 353	AUE_NULL	MSTD	{ int __acl_aclcheck_file(const char *path, \
 				    acl_type_t type, struct acl *aclp); }
 354	AUE_NULL	MSTD	{ int __acl_aclcheck_fd(int filedes, \
 				    acl_type_t type, struct acl *aclp); }
-355	AUE_NULL	MSTD	{ int extattrctl(const char *path, int cmd, \
+355	AUE_EXTATTRCTL	MSTD	{ int extattrctl(const char *path, int cmd, \
 				    const char *filename, int attrnamespace, \
 				    const char *attrname); }
-356	AUE_NULL	MSTD	{ int extattr_set_file(const char *path, \
-				    int attrnamespace, const char *attrname, \
-				    void *data, size_t nbytes); }
-357	AUE_NULL	MSTD	{ ssize_t extattr_get_file(const char *path, \
-				    int attrnamespace, const char *attrname, \
-				    void *data, size_t nbytes); }
-358	AUE_NULL	MSTD	{ int extattr_delete_file(const char *path, \
+356	AUE_EXTATTR_SET_FILE	MSTD	{ int extattr_set_file( \
+				    const char *path, int attrnamespace, \
+				    const char *attrname, void *data, \
+				    size_t nbytes); }
+357	AUE_EXTATTR_GET_FILE	MSTD	{ ssize_t extattr_get_file( \
+				    const char *path, int attrnamespace, \
+				    const char *attrname, void *data, \
+				    size_t nbytes); }
+358	AUE_EXTATTR_DELETE_FILE	MSTD	{ int extattr_delete_file(const char *path, \
 				    int attrnamespace, \
 				    const char *attrname); }
 359	AUE_NULL	MNOSTD	{ int aio_waitcomplete( \
@@ -649,13 +651,13 @@
 368	AUE_NULL	UNIMPL	__cap_set_fd
 369	AUE_NULL	UNIMPL	__cap_set_file
 370	AUE_NULL	NODEF	lkmressys lkmressys nosys_args int
-371	AUE_NULL	MSTD	{ int extattr_set_fd(int fd, \
+371	AUE_EXTATTR_SET_FD	MSTD	{ int extattr_set_fd(int fd, \
 				    int attrnamespace, const char *attrname, \
 				    void *data, size_t nbytes); }
-372	AUE_NULL	MSTD	{ ssize_t extattr_get_fd(int fd, \
+372	AUE_EXTATTR_GET_FD	MSTD	{ ssize_t extattr_get_fd(int fd, \
 				    int attrnamespace, const char *attrname, \
 				    void *data, size_t nbytes); }
-373	AUE_NULL	MSTD	{ int extattr_delete_fd(int fd, \
+373	AUE_EXTATTR_DELETE_FD	MSTD	{ int extattr_delete_fd(int fd, \
 				    int attrnamespace, \
 				    const char *attrname); }
 374	AUE_NULL	MSTD	{ int __setugid(int flag); }
@@ -718,14 +720,16 @@
 				    struct mac *mac_p); }
 411	AUE_NULL	MSTD	{ int __mac_set_link(const char *path_p, \
 				    struct mac *mac_p); }
-412	AUE_NULL	MSTD	{ int extattr_set_link(const char *path, \
-				    int attrnamespace, const char *attrname, \
-				    void *data, size_t nbytes); }
-413	AUE_NULL	MSTD	{ ssize_t extattr_get_link(const char *path, \
-				    int attrnamespace, const char *attrname, \
-				    void *data, size_t nbytes); }
-414	AUE_NULL	MSTD	{ int extattr_delete_link(const char *path, \
-				    int attrnamespace, \
+412	AUE_EXTATTR_SET_LINK	MSTD	{ int extattr_set_link( \
+				    const char *path, int attrnamespace, \
+				    const char *attrname, void *data, \
+				    size_t nbytes); }
+413	AUE_EXTATTR_GET_LINK	MSTD	{ ssize_t extattr_get_link( \
+				    const char *path, int attrnamespace, \
+				    const char *attrname, void *data, \
+				    size_t nbytes); }
+414	AUE_EXTATTR_DELETE_LINK	MSTD	{ int extattr_delete_link( \
+				    const char *path, int attrnamespace, \
 				    const char *attrname); }
 415	AUE_NULL	MSTD	{ int __mac_execve(char *fname, char **argv, \
 				    char **envv, struct mac *mac_p); }
@@ -761,13 +765,13 @@
 434	AUE_NULL	MSTD	{ int _umtx_lock(struct umtx *umtx); }
 435	AUE_NULL	MSTD	{ int _umtx_unlock(struct umtx *umtx); }
 436	AUE_NULL	MSTD	{ int jail_attach(int jid); }
-437	AUE_NULL	MSTD	{ ssize_t extattr_list_fd(int fd, \
+437	AUE_EXTATTR_LIST_FD	MSTD	{ ssize_t extattr_list_fd(int fd, \
 				    int attrnamespace, void *data, \
 				    size_t nbytes); }
-438	AUE_NULL	MSTD	{ ssize_t extattr_list_file( \
+438	AUE_EXTATTR_LIST_FILE	MSTD	{ ssize_t extattr_list_file( \
 				    const char *path, int attrnamespace, \
 				    void *data, size_t nbytes); }
-439	AUE_NULL	MSTD	{ ssize_t extattr_list_link( \
+439	AUE_EXTATTR_LIST_LINK	MSTD	{ ssize_t extattr_list_link( \
 				    const char *path, int attrnamespace, \
 				    void *data, size_t nbytes); }
 440	AUE_NULL	MSTD	{ int kse_switchin( \

==== //depot/projects/trustedbsd/audit3/sys/kern/vfs_syscalls.c#33 (text+ko) ====

@@ -4371,6 +4371,8 @@
 	char attrname[EXTATTR_MAXNAMELEN];
 	int vfslocked, fnvfslocked, error;
 
+	AUDIT_ARG(cmd, uap->cmd);
+	AUDIT_ARG(value, uap->attrnamespace);
 	/*
 	 * uap->attrname is not always defined.  We check again later when we
 	 * invoke the VFS call so as to pass in NULL there if needed.
@@ -4381,6 +4383,7 @@
 		if (error)
 			return (error);
 	}
+	AUDIT_ARG(text, attrname);
 
 	vfslocked = fnvfslocked = 0;
 	/*
@@ -4509,9 +4512,12 @@
 	char attrname[EXTATTR_MAXNAMELEN];
 	int vfslocked, error;
 
+	AUDIT_ARG(fd, uap->fd);
+	AUDIT_ARG(value, uap->attrnamespace);
 	error = copyinstr(uap->attrname, attrname, EXTATTR_MAXNAMELEN, NULL);
 	if (error)
 		return (error);
+	AUDIT_ARG(text, attrname);
 
 	error = getvnode(td->td_proc->p_fd, uap->fd, &fp);
 	if (error)
@@ -4541,9 +4547,11 @@
 	char attrname[EXTATTR_MAXNAMELEN];
 	int vfslocked, error;
 
+	AUDIT_ARG(value, uap->attrnamespace);
 	error = copyinstr(uap->attrname, attrname, EXTATTR_MAXNAMELEN, NULL);
 	if (error)
 		return (error);
+	AUDIT_ARG(text, attrname);
 
 	NDINIT(&nd, LOOKUP, MPSAFE | FOLLOW | AUDITVNODE1, UIO_USERSPACE,
 	    uap->path, td);
@@ -4576,9 +4584,11 @@
 	char attrname[EXTATTR_MAXNAMELEN];
 	int vfslocked, error;
 
+	AUDIT_ARG(value, uap->attrnamespace);
 	error = copyinstr(uap->attrname, attrname, EXTATTR_MAXNAMELEN, NULL);
 	if (error)
 		return (error);
+	AUDIT_ARG(text, attrname);
 
 	NDINIT(&nd, LOOKUP, MPSAFE | NOFOLLOW | AUDITVNODE1, UIO_USERSPACE,
 	    uap->path, td);
@@ -4683,9 +4693,12 @@
 	char attrname[EXTATTR_MAXNAMELEN];
 	int vfslocked, error;
 
+	AUDIT_ARG(fd, uap->fd);
+	AUDIT_ARG(value, uap->attrnamespace);
 	error = copyinstr(uap->attrname, attrname, EXTATTR_MAXNAMELEN, NULL);
 	if (error)
 		return (error);
+	AUDIT_ARG(text, attrname);
 
 	error = getvnode(td->td_proc->p_fd, uap->fd, &fp);
 	if (error)
@@ -4715,9 +4728,11 @@
 	char attrname[EXTATTR_MAXNAMELEN];
 	int vfslocked, error;
 
+	AUDIT_ARG(value, uap->attrnamespace);
 	error = copyinstr(uap->attrname, attrname, EXTATTR_MAXNAMELEN, NULL);
 	if (error)
 		return (error);
+	AUDIT_ARG(text, attrname);
 
 	NDINIT(&nd, LOOKUP, MPSAFE | FOLLOW | AUDITVNODE1, UIO_USERSPACE,
 	    uap->path, td);
@@ -4750,9 +4765,11 @@
 	char attrname[EXTATTR_MAXNAMELEN];
 	int vfslocked, error;
 
+	AUDIT_ARG(value, uap->attrnamespace);
 	error = copyinstr(uap->attrname, attrname, EXTATTR_MAXNAMELEN, NULL);
 	if (error)
 		return (error);
+	AUDIT_ARG(text, attrname);
 
 	NDINIT(&nd, LOOKUP, MPSAFE | NOFOLLOW | AUDITVNODE1, UIO_USERSPACE,
 	    uap->path, td);
@@ -4827,9 +4844,12 @@
 	char attrname[EXTATTR_MAXNAMELEN];
 	int vfslocked, error;
 
+	AUDIT_ARG(fd, uap->fd);
+	AUDIT_ARG(value, uap->attrnamespace);
 	error = copyinstr(uap->attrname, attrname, EXTATTR_MAXNAMELEN, NULL);
 	if (error)
 		return (error);
+	AUDIT_ARG(text, attrname);
 
 	error = getvnode(td->td_proc->p_fd, uap->fd, &fp);
 	if (error)
@@ -4856,9 +4876,11 @@
 	char attrname[EXTATTR_MAXNAMELEN];
 	int vfslocked, error;
 
+	AUDIT_ARG(value, uap->attrnamespace);
 	error = copyinstr(uap->attrname, attrname, EXTATTR_MAXNAMELEN, NULL);
 	if (error)
 		return(error);
+	AUDIT_ARG(text, attrname);
 
 	NDINIT(&nd, LOOKUP, MPSAFE | FOLLOW | AUDITVNODE1, UIO_USERSPACE,
 	    uap->path, td);
@@ -4887,9 +4909,11 @@
 	char attrname[EXTATTR_MAXNAMELEN];
 	int vfslocked, error;
 
+	AUDIT_ARG(value, uap->attrnamespace);
 	error = copyinstr(uap->attrname, attrname, EXTATTR_MAXNAMELEN, NULL);
 	if (error)
 		return(error);
+	AUDIT_ARG(text, attrname);
 
 	NDINIT(&nd, LOOKUP, MPSAFE | NOFOLLOW | AUDITVNODE1, UIO_USERSPACE,
 	    uap->path, td);
@@ -4985,6 +5009,8 @@
 	struct file *fp;
 	int vfslocked, error;
 
+	AUDIT_ARG(fd, uap->fd);
+	AUDIT_ARG(value, uap->attrnamespace);
 	error = getvnode(td->td_proc->p_fd, uap->fd, &fp);
 	if (error)
 		return (error);
@@ -5011,6 +5037,7 @@
 	struct nameidata nd;
 	int vfslocked, error;
 
+	AUDIT_ARG(value, uap->attrnamespace);
 	NDINIT(&nd, LOOKUP, MPSAFE | FOLLOW | AUDITVNODE1, UIO_USERSPACE,
 	    uap->path, td);
 	error = namei(&nd);
@@ -5040,6 +5067,7 @@
 	struct nameidata nd;
 	int vfslocked, error;
 
+	AUDIT_ARG(value, uap->attrnamespace);
 	NDINIT(&nd, LOOKUP, MPSAFE | NOFOLLOW | AUDITVNODE1, UIO_USERSPACE,
 	    uap->path, td);
 	error = namei(&nd);

==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_bsm.c#15 (text+ko) ====

@@ -36,6 +36,7 @@
 #include <sys/malloc.h>
 #include <sys/mutex.h>
 #include <sys/socket.h>
+#include <sys/extattr.h>
 #include <sys/fcntl.h>
 #include <sys/user.h>
 #include <sys/systm.h>
@@ -625,6 +626,54 @@
 		UPATH1_VNODE1_TOKENS;
 		break;
 
+	case AUE_EXTATTR_GET_FILE:
+	case AUE_EXTATTR_SET_FILE:
+	case AUE_EXTATTR_LIST_FILE:
+	case AUE_EXTATTR_DELETE_FILE:
+	case AUE_EXTATTR_GET_LINK:
+	case AUE_EXTATTR_SET_LINK:
+	case AUE_EXTATTR_LIST_LINK:
+	case AUE_EXTATTR_DELETE_LINK:
+	case AUE_EXTATTRCTL:
+		UPATH1_VNODE1_TOKENS;
+		if (ARG_IS_VALID(kar, ARG_CMD)) {
+			tok = au_to_arg32(2, "cmd", ar->ar_arg_cmd);
+			kau_write(rec, tok);
+		}
+		/* extattrctl(2) filename parameter is in upath2/vnode2 */
+		UPATH2_TOKENS;
+		VNODE2_TOKENS;
+		/* fall through */
+	case AUE_EXTATTR_GET_FD:
+	case AUE_EXTATTR_SET_FD:
+	case AUE_EXTATTR_LIST_FD:
+	case AUE_EXTATTR_DELETE_FD:
+		if (ARG_IS_VALID(kar, ARG_FD)) {
+			tok = au_to_arg32(2, "fd", ar->ar_arg_fd);
+			kau_write(rec, tok);
+		}
+		if (ARG_IS_VALID(kar, ARG_VALUE)) {
+			switch (ar->ar_arg_value) {
+			case EXTATTR_NAMESPACE_USER:
+				tok = au_to_text(EXTATTR_NAMESPACE_USER_STRING);
+				break;
+			case EXTATTR_NAMESPACE_SYSTEM:
+				tok = au_to_text(EXTATTR_NAMESPACE_SYSTEM_STRING);
+				break;
+			default:
+				tok = au_to_arg32(3, "attrnamespace",
+				    ar->ar_arg_value);
+				break;
+			}
+			kau_write(rec, tok);
+		}
+		/* attrname is in the text field */
+		if (ARG_IS_VALID(kar, ARG_TEXT)) {
+			tok = au_to_text(ar->ar_arg_text);
+			kau_write(rec, tok);
+		}
+		break;
+
 	case AUE_FCHMOD:
 		if (ARG_IS_VALID(kar, ARG_MODE)) {
 			tok = au_to_arg32(2, "new file mode",

==== //depot/projects/trustedbsd/audit3/sys/sys/syscall.h#20 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call numbers.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/sys/syscall.h,v 1.192 2006/03/23 08:48:37 davidxu Exp $
- * created from FreeBSD: src/sys/kern/syscalls.master,v 1.213 2006/03/23 08:46:41 davidxu Exp 
+ * $FreeBSD$
+ * created from FreeBSD: src/sys/kern/syscalls.master,v 1.215 2006/03/28 14:32:37 des Exp 
  */
 
 #define	SYS_syscall	0

==== //depot/projects/trustedbsd/audit3/sys/sys/syscall.mk#21 (text+ko) ====

@@ -1,7 +1,7 @@
 # FreeBSD system call names.
 # DO NOT EDIT-- this file is automatically generated.
-# $FreeBSD: src/sys/sys/syscall.mk,v 1.147 2006/03/23 08:48:37 davidxu Exp $
-# created from FreeBSD: src/sys/kern/syscalls.master,v 1.213 2006/03/23 08:46:41 davidxu Exp 
+# $FreeBSD$
+# created from FreeBSD: src/sys/kern/syscalls.master,v 1.215 2006/03/28 14:32:37 des Exp 
 MIASM =  \
 	syscall.o \
 	exit.o \

==== //depot/projects/trustedbsd/audit3/sys/sys/sysproto.h#24 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call prototypes.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/sys/sysproto.h,v 1.194 2006/03/28 14:32:38 des Exp $
- * created from FreeBSD: src/sys/kern/syscalls.master,v 1.213 2006/03/23 08:46:41 davidxu Exp 
+ * $FreeBSD$
+ * created from FreeBSD: src/sys/kern/syscalls.master,v 1.215 2006/03/28 14:32:37 des Exp 
  */
 
 #ifndef _SYS_SYSPROTO_H_


More information about the p4-projects mailing list