Mercurial > illumos > illumos-gate
changeset 11934:fdae577692c4
6890083 fcntl(2) should generate an additional argument token when F_SETFL is used
author | Marek Pospisil <Marek.Pospisil@Sun.COM> |
---|---|
date | Tue, 16 Mar 2010 06:44:44 -0700 |
parents | 76670fc4178f |
children | 538c866aaac6 |
files | usr/src/cmd/auditrecord/audit_record_attr.txt usr/src/uts/common/c2/audit_event.c |
diffstat | 2 files changed, 13 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/cmd/auditrecord/audit_record_attr.txt Tue Mar 16 07:13:46 2010 -0600 +++ b/usr/src/cmd/auditrecord/audit_record_attr.txt Tue Mar 16 06:44:44 2010 -0700 @@ -814,12 +814,15 @@ label=AUE_FCNTL case=With a valid file descriptor - format=arg1:path:attr - comment=2, command, "cmd" + format=arg1:[arg]2:path:attr + comment=2, command, "cmd": + comment=3, flags, "flags" case=With an invalid file descriptor - format=arg1:arg2 + format=arg1:[arg]2:arg3 comment=2, command, "cmd": + comment=3, flags, "flags": comment=1, file descriptor, "no path fd" + note=Flags are included only when cmd is F_SETFL. label=AUE_FLOCK skip=Not used.
--- a/usr/src/uts/common/c2/audit_event.c Tue Mar 16 07:13:46 2010 -0600 +++ b/usr/src/uts/common/c2/audit_event.c Tue Mar 16 06:44:44 2010 -0700 @@ -1383,7 +1383,7 @@ aus_fcntl(struct t_audit_data *tad) { klwp_t *clwp = ttolwp(curthread); - uint32_t cmd, fd; + uint32_t cmd, fd, flags; struct file *fp; struct vnode *vp; struct f_audit_data *fad; @@ -1394,11 +1394,15 @@ long arg; } *uap = (struct a *)clwp->lwp_ap; - cmd = (uint32_t)uap->cmd; - fd = (uint32_t)uap->fd; + cmd = (uint32_t)uap->cmd; + fd = (uint32_t)uap->fd; + flags = (uint32_t)uap->arg; au_uwrite(au_to_arg32(2, "cmd", cmd)); + if (cmd == F_SETFL) + au_uwrite(au_to_arg32(3, "flags", flags)); + /* * convert file pointer to file descriptor * Note: fd ref count incremented here.