svn commit: r205770 - stable/8/sys/kern
Edward Tomasz Napierala
trasz at FreeBSD.org
Sat Mar 27 18:09:40 UTC 2010
Author: trasz
Date: Sat Mar 27 18:09:40 2010
New Revision: 205770
URL: http://svn.freebsd.org/changeset/base/205770
Log:
MFC r200273:
Don't add VAPPEND if the file is not being opened for writing. Note that this
only affects cases where open(2) is being used improperly - i.e. when the user
specifies O_APPEND without O_WRONLY or O_RDWR.
Reviewed by: rwatson
Modified:
stable/8/sys/kern/vfs_syscalls.c
stable/8/sys/kern/vfs_vnops.c
Directory Properties:
stable/8/sys/ (props changed)
stable/8/sys/amd64/include/xen/ (props changed)
stable/8/sys/cddl/contrib/opensolaris/ (props changed)
stable/8/sys/contrib/dev/acpica/ (props changed)
stable/8/sys/contrib/pf/ (props changed)
stable/8/sys/dev/xen/xenpci/ (props changed)
Modified: stable/8/sys/kern/vfs_syscalls.c
==============================================================================
--- stable/8/sys/kern/vfs_syscalls.c Sat Mar 27 18:08:14 2010 (r205769)
+++ stable/8/sys/kern/vfs_syscalls.c Sat Mar 27 18:09:40 2010 (r205770)
@@ -4436,7 +4436,7 @@ fhopen(td, uap)
}
if (fmode & FREAD)
accmode |= VREAD;
- if (fmode & O_APPEND)
+ if ((fmode & O_APPEND) && (fmode & FWRITE))
accmode |= VAPPEND;
#ifdef MAC
error = mac_vnode_check_open(td->td_ucred, vp, accmode);
Modified: stable/8/sys/kern/vfs_vnops.c
==============================================================================
--- stable/8/sys/kern/vfs_vnops.c Sat Mar 27 18:08:14 2010 (r205769)
+++ stable/8/sys/kern/vfs_vnops.c Sat Mar 27 18:09:40 2010 (r205770)
@@ -212,7 +212,7 @@ restart:
accmode |= VREAD;
if (fmode & FEXEC)
accmode |= VEXEC;
- if (fmode & O_APPEND)
+ if ((fmode & O_APPEND) && (fmode & FWRITE))
accmode |= VAPPEND;
#ifdef MAC
error = mac_vnode_check_open(cred, vp, accmode);
More information about the svn-src-all
mailing list