History log of /src/sys/fs/ptyfs/ptyfs_vfsops.c |
Revision | | Date | Author | Comments |
1.58 |
| 16-Mar-2020 |
pgoyette | Use the module subsystem's ability to process SYSCTL_SETUP() entries to automate installation of sysctl nodes.
Note that there are still a number of device and pseudo-device modules that create entries tied to individual device units, rather than to the module itself. These are not changed.
|
1.57 |
| 17-Jan-2020 |
ad | VFS_VGET(), VFS_ROOT(), VFS_FHTOVP(): give them a "int lktype" argument, to allow us to get shared locks (or no lock) on the returned vnode. Matches FreeBSD.
|
1.56 |
| 17-Feb-2017 |
hannken | branches: 1.56.14; 1.56.20; Add generic genfs_suspendctl() and use it for all file systems. Layered file systems need work.
|
1.55 |
| 21-Oct-2014 |
christos | branches: 1.55.2; 1.55.4; 1.55.6; Revert previous; it does not work with COMPAT_BSDPTY, screen(1) fails because it does a TIOCPTSNAME immediately after opening ptmx and finds an old style pty.
|
1.54 |
| 15-Oct-2014 |
christos | From Ilia Zykov: - correct some incorrect comments - add XXX warning - increase security by activating when get the slave - make pty_vn_open() private to tty_ptm.c
|
1.53 |
| 15-Aug-2014 |
hannken | Change ptyfs to vcache. - Use (type, minor) as key. - Change ptyfs_allocvp to return a referenced vnode and lock where needed. - Remove unneeded vnode backpointer ptyfs_vnode. - Keep a single hashlist for pty nodes to make their attributes persistent.
OK: Christos Zoulas
|
1.52 |
| 14-Aug-2014 |
maxv | Overflow if *data_len == OSIZE and args->version >= PTYFS_ARGSVERSION.
Sent on tech-kern@, ok christos@
|
1.51 |
| 13-Aug-2014 |
hannken | - Add a map of active controlling ptys per mount and no longer abuse the vnode lifecycle. - No longer set "recycle" on VOP_INACTIVE(). - Make ptyfs_used_get() private to ptyfs_subr.c - Stop copying device attributes from traditional ptys on first allocation. - Remove unneeded argument "lwp" from ptyfs_allocvp() and ptyfs_free_get().
OK: Christos Zoulas
|
1.50 |
| 16-Apr-2014 |
maxv | branches: 1.50.2; An (un)privileged user can easily make the kernel dereference a NULL pointer.
The kernel allows 'data' to be NULL; it's the fs's responsibility to ensure that it isn't NULL (if the fs actually needs data).
ok christos@
|
1.49 |
| 04-Apr-2014 |
christos | branches: 1.49.2; Handle multiple ptyfs mounts with different chroots. ptys opened in one chroot are only visible in that chroot.
|
1.48 |
| 27-Mar-2014 |
christos | From Ilya Zykov: - ifdef out some code that is only used for NO_DEV_PTM - pass the mountpoint instead of the ptm structure to the implementation dependent (ptyfs or bsdpty) functions. - add a function to return the correct ptyfs mountpoint for the current lwp
|
1.47 |
| 23-Mar-2014 |
hannken | Change all vfsops to use C99 designated initializers.
No functional changes intended.
|
1.46 |
| 19-Mar-2014 |
christos | - return an error if we could not get the pts pathname - correct getting pathname if the mount point inside a chroot (Ilya Zykov)
|
1.45 |
| 25-Feb-2014 |
pooka | Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before the sysctl link sets are processed, and remove redundancy.
Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate lines of code.
|
1.44 |
| 18-Sep-2012 |
christos | branches: 1.44.2; let us get mounted multiple times.
|
1.43 |
| 18-Sep-2012 |
christos | Always do the chroot filename mapping; it is pointless not to do it.
|
1.42 |
| 08-Jan-2010 |
pooka | branches: 1.42.12; 1.42.18; 1.42.20; 1.42.22; The VATTR_NULL/VREF/VHOLD/HOLDRELE() macros lost their will to live years ago when the kernel was modified to not alter ABI based on DIAGNOSTIC, and now just call the respective function interfaces (in lowercase). Plenty of mix'n match upper/lowercase has creeped into the tree since then. Nuke the macros and convert all callsites to lowercase.
no functional change
|
1.41 |
| 30-Nov-2009 |
pooka | Introduce genfs_statvfs() as pretty much a no-info statvfs and convert several pseudo file systems to use it.
|
1.40 |
| 21-Mar-2009 |
christos | Fix old userland compat.
|
1.39 |
| 15-Mar-2009 |
christos | Add a chroot flag, so that ptyfs can be mounted in a chrooted environment. XXX: This is a hack, in reality we should allow multiple ptyfs mounts.
|
1.38 |
| 11-Jan-2009 |
christos | branches: 1.38.2; merge christos-time_t
|
1.37 |
| 26-Oct-2008 |
joerg | branches: 1.37.2; 1.37.4; 1.37.6; 1.37.14; 1.37.18; Remove logic to compute relative pathes to chroots. It breaks the default case of ptyfs mounted under /dev/pts as any chroot would get /%d as slave names. This allows null mounts of ptyfs to work. To allow pty allocation from within chroots, either no ptyfs must be mounted or a null mount exist.
|
1.36 |
| 28-Jun-2008 |
rumble | branches: 1.36.2; Create sysctl entries during module initialisation and destroy them appropriately.
Many of these file systems are now ready for modularisation.
|
1.35 |
| 13-May-2008 |
simonb | branches: 1.35.2; mnt_data is a pointer, set it to NULL not 0 when we're finished with it.
|
1.34 |
| 13-May-2008 |
simonb | Use the correct malloc type when free()ing the ptyfs mount structure. Fixes the "free 2: inuse 0, probable double free" panic when using ptyfs and KMEMSTATS.
|
1.33 |
| 10-May-2008 |
rumble | Convert file systems to dynamically attach with the new module interface. Make VFS hooks dynamic while we're here and say farewell to VFS_ATTACH and VFS_HOOKS_ATTACH linksets.
As a consequence, most of the file systems can now be loaded as new style modules.
Quick sanity check by ad@.
|
1.32 |
| 29-Apr-2008 |
ad | branches: 1.32.2; PR kern/38057 ffs makes assuptions about devvp file system PR kern/33406 softdeps get stuck in endless loop
Introduce VFS_FSYNC() and call it when syncing a block device, if it has a mounted file system.
|
1.31 |
| 28-Jan-2008 |
dholland | branches: 1.31.6; 1.31.8; 1.31.10; Fix some race conditions in rename. Introduce a per-FS rename lock and new vfsops to manipulate it. Get this lock while renaming. Also add another relookup() in do_sys_rename, which is a hack to kludge around some of the worst deficiencies of ufs_rename. reviewed-by: pooka (and an earlier rev by ad) posted on tech-kern with no objections.
|
1.30 |
| 26-Nov-2007 |
pooka | Remove the "struct lwp *" argument from all VFS and VOP interfaces. The general trend is to remove it from all kernel interfaces and this is a start. In case the calling lwp is desired, curlwp should be used.
quick consensus on tech-kern
|
1.29 |
| 24-Sep-2007 |
rumble | branches: 1.29.4; Avoid stack allocation of large dirent structures in foo_readdir().
|
1.28 |
| 31-Jul-2007 |
pooka | branches: 1.28.2; 1.28.4; 1.28.6; 1.28.8; * nuke the nameidata parameter from VFS_MOUNT(). Nobody on tech-kern knew what it was supposed to be used for and wrstuden gave a go-ahead * while rototilling, convert file systems which went easily to use VFS_PROTOS() instead of manually prototyping the methods
|
1.27 |
| 26-Jul-2007 |
pooka | Use eopnotsupp() instead of vfs_stdsuspendctl() and retire the latter.
|
1.26 |
| 17-Jul-2007 |
pooka | branches: 1.26.2; Make set_statvfs_info() take a parameter for the vfs name instead of always retrieving it from mp->mnt_op->vfs_name
christos ok
|
1.25 |
| 12-Jul-2007 |
dsl | Change the VFS_MOUNT() interface so that the 'data' buffer passed to the fs code is a kernel buffer, pass though the length of the buffer as well. Since the length of the userspace buffer isn'it (yet) passed through the mount system call, add a field to the vfsops structure containing the default length. Split sys_mount() for calls from compat code. Ride one of the recent kernel version changes - old fs LKMs will load, but sys_mount() will reject any attempt to use them.
|
1.24 |
| 30-Jun-2007 |
pooka | Using POOL_INIT here makes no sense, since file systems always have an init method. So get rid of it and #ifdef _LKM and just always init in the init method. Give malloc types the same treatment. Makes file systems nicer to work with in linksetless environments and fixes a few LKM discrepancies.
|
1.23 |
| 19-Jan-2007 |
hannken | branches: 1.23.6; 1.23.8; New file system suspension API to replace vn_start_write and vn_finished_write. The suspension helpers are now put into file system specific operations. This means every file system not supporting these helpers cannot be suspended and therefore snapshots are no longer possible.
Implemented for file systems of type ffs.
The new API is enabled on a kernel option NEWVNGATE. This option is not enabled by default in any kernel config.
Presented and discussed on tech-kern with much input from Bill Studenmund <wrstuden@netbsd.org> and YAMAMOTO Takashi <yamt@netbsd.org>.
Welcome to 4.99.9 (new vfs op vfs_suspendctl).
|
1.22 |
| 09-Dec-2006 |
chs | a smorgasbord of improvements to vnode locking and path lookup: - LOCKPARENT is no longer relevant for lookup(), relookup() or VOP_LOOKUP(). these now always return the parent vnode locked. namei() works as before. lookup() and various other paths no longer acquire vnode locks in the wrong order via vrele(). fixes PR 32535. as a nice side effect, path lookup is also up to 25% faster. - the above allows us to get rid of PDIRUNLOCK. - also get rid of WANTPARENT (just use LOCKPARENT and unlock it). - remove an assumption in layer_node_find() that all file systems implement a recursive VOP_LOCK() (unionfs doesn't). - require that all file systems supply vfs_vptofh and vfs_fhtovp routines. fill in eopnotsupp() for file systems that don't support being exported and remove the checks for NULL. (layerfs calls these without checking.) - in union_lookup1(), don't change refcounts in the ISDOTDOT case, just adjust which vnode is locked. fixes PR 33374. - apply fixes for ufs_rename() from ufs_vnops.c rev. 1.61 to ext2fs_rename().
|
1.21 |
| 16-Nov-2006 |
christos | branches: 1.21.2; __unused removal on arguments; approved by core.
|
1.20 |
| 12-Oct-2006 |
christos | - sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
1.19 |
| 03-Sep-2006 |
christos | branches: 1.19.2; 1.19.4; add missing initializers
|
1.18 |
| 23-Jul-2006 |
ad | Use the LWP cached credentials where sane.
|
1.17 |
| 20-Jun-2006 |
tron | Make this compile again.
|
1.16 |
| 20-Jun-2006 |
christos | Don't allocate too much stuff on the stack.
|
1.15 |
| 14-May-2006 |
elad | branches: 1.15.4; integrate kauth.
|
1.14 |
| 28-Apr-2006 |
christos | Do the count check after we process getargs.
|
1.13 |
| 13-Apr-2006 |
christos | Strip the chrooted portion of the path from the reported pty path. Reported and tested by Lasse Kliemann. Thanks!
|
1.12 |
| 11-Dec-2005 |
christos | branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; merge ktrace-lwp.
|
1.11 |
| 01-Oct-2005 |
christos | use a counter to prevent from mounting ptyfs twice. Using save_ptm is not good enough, because if we don't have COMPAT_BSDPTY, then it will stay NULL.
|
1.10 |
| 29-Sep-2005 |
christos | Move the duplicate mount check sooner, and fix a leak.
|
1.9 |
| 23-Sep-2005 |
jmmv | Apply the NFS exports list rototill patch:
- Remove all NFS related stuff from file system specific code. - Drop the vfs_checkexp hook and generalize it in the new nfs_check_export function, thus removing redundancy from all file systems. - Move all NFS export-related stuff from kern/vfs_subr.c to the new file sys/nfs/nfs_export.c. The former was becoming large and its code is always compiled, regardless of the build options. Using the latter, the code is only compiled in when NFSSERVER is enabled. While doing this, also make some functions in nfs_subs.c conditional to NFSSERVER. - Add a new command in nfssvc(2), called NFSSVC_SETEXPORTSLIST, that takes a path and a set of export entries. At the moment it can only clear the exports list or append entries, one by one, but it is done in a way that allows setting the whole set of entries atomically in the future (see the comment in mountd_set_exports_list or in doc/TODO). - Change mountd(8) to use the nfssvc(2) system call instead of mount(2) so that it becomes file system agnostic. In fact, all this whole thing was done to remove a 'XXX' block from this utility! - Change the mount*, newfs and fsck* userland utilities to not deal with NFS exports initialization; done internally by the kernel when initializing the NFS support for each file system. - Implement an interface for VFS (called VFS hooks) so that several kernel subsystems can run arbitrary code upon receipt of specific VFS events. At the moment, this only provides support for unmount and is used to destroy NFS exports lists from the file systems being unmounted, though it has room for extension.
Thanks go to yamt@, chs@, thorpej@, wrstuden@ and others for their comments and advice in the development of this patch.
|
1.8 |
| 29-May-2005 |
christos | branches: 1.8.2; - rename variables to avoid shadowing. - add a few const.
|
1.7 |
| 11-May-2005 |
christos | Remove compat code that hard-codes default group and mode for pty creation. Hi Matt!
|
1.6 |
| 29-Mar-2005 |
thorpej | - Define a VFS_ATTACH() macro that places a reference to a vfsops structure into the "vfsops" link set. - Use VFS_ATTACH() where vfsops are declared for individual file systems. - In vfsinit(), traverse the "vfsops" link set, rather than vfs_list_initial[].
|
1.5 |
| 26-Feb-2005 |
perry | nuke trailing whitespace
|
1.4 |
| 02-Jan-2005 |
christos | branches: 1.4.2; 1.4.4; make this compile again; hi potr
|
1.3 |
| 25-Nov-2004 |
christos | Add pty group and mode settings.
|
1.2 |
| 11-Nov-2004 |
jdolecek | branches: 1.2.2; update #include path to fs/ptyfs/
|
1.1 |
| 11-Nov-2004 |
jdolecek | move ptyfs off sys/miscfs/ptyfs/ to sys/fs/ptyfs/
|
1.2.2.7 |
| 10-Nov-2005 |
skrll | Sync with HEAD. Here we go again...
|
1.2.2.6 |
| 01-Apr-2005 |
skrll | Sync with HEAD.
|
1.2.2.5 |
| 04-Mar-2005 |
skrll | Sync with HEAD.
Hi Perry!
|
1.2.2.4 |
| 17-Jan-2005 |
skrll | Sync with HEAD.
|
1.2.2.3 |
| 29-Nov-2004 |
skrll | Sync with HEAD.
|
1.2.2.2 |
| 14-Nov-2004 |
skrll | Sync with HEAD.
|
1.2.2.1 |
| 11-Nov-2004 |
skrll | file ptyfs_vfsops.c was added on branch ktrace-lwp on 2004-11-14 08:15:57 +0000
|
1.4.4.1 |
| 19-Mar-2005 |
yamt | sync with head. xen and whitespace. xen part is not finished.
|
1.4.2.1 |
| 29-Apr-2005 |
kent | sync with -current
|
1.8.2.7 |
| 04-Feb-2008 |
yamt | sync with head.
|
1.8.2.6 |
| 07-Dec-2007 |
yamt | sync with head
|
1.8.2.5 |
| 27-Oct-2007 |
yamt | sync with head.
|
1.8.2.4 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.8.2.3 |
| 26-Feb-2007 |
yamt | sync with head.
|
1.8.2.2 |
| 30-Dec-2006 |
yamt | sync with head.
|
1.8.2.1 |
| 21-Jun-2006 |
yamt | sync with head.
|
1.12.12.1 |
| 24-May-2006 |
tron | Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
|
1.12.10.4 |
| 11-May-2006 |
elad | sync with head
|
1.12.10.3 |
| 06-May-2006 |
christos | - Move kauth_cred_t declaration to <sys/types.h> - Cleanup struct ucred; forward declarations that are unused. - Don't include <sys/kauth.h> in any header, but include it in the c files that need it.
Approved by core.
|
1.12.10.2 |
| 19-Apr-2006 |
elad | sync with head.
|
1.12.10.1 |
| 08-Mar-2006 |
elad | Adapt to kernel authorization KPI.
|
1.12.8.4 |
| 03-Sep-2006 |
yamt | sync with head.
|
1.12.8.3 |
| 11-Aug-2006 |
yamt | sync with head
|
1.12.8.2 |
| 26-Jun-2006 |
yamt | sync with head.
|
1.12.8.1 |
| 24-May-2006 |
yamt | sync with head.
|
1.12.6.2 |
| 01-Jun-2006 |
kardel | Sync with head.
|
1.12.6.1 |
| 22-Apr-2006 |
simonb | Sync with head.
|
1.12.4.1 |
| 09-Sep-2006 |
rpaulo | sync with head
|
1.15.4.1 |
| 13-Jul-2006 |
gdamore | Merge from HEAD.
|
1.19.4.2 |
| 10-Dec-2006 |
yamt | sync with head.
|
1.19.4.1 |
| 22-Oct-2006 |
yamt | sync with head
|
1.19.2.3 |
| 01-Feb-2007 |
ad | Sync with head.
|
1.19.2.2 |
| 12-Jan-2007 |
ad | Sync with head.
|
1.19.2.1 |
| 18-Nov-2006 |
ad | Sync with head.
|
1.21.2.1 |
| 17-Feb-2007 |
tron | Apply patch (requested by chs in ticket #422): - Fix various deadlock problems with nullfs and unionfs. - Speed up path lookups by upto 25%.
|
1.23.8.1 |
| 11-Jul-2007 |
mjf | Sync with head.
|
1.23.6.3 |
| 09-Oct-2007 |
ad | Sync with head.
|
1.23.6.2 |
| 20-Aug-2007 |
ad | Sync with HEAD.
|
1.23.6.1 |
| 15-Jul-2007 |
ad | Sync with head.
|
1.26.2.1 |
| 15-Aug-2007 |
skrll | Sync with HEAD.
|
1.28.8.2 |
| 31-Jul-2007 |
pooka | * nuke the nameidata parameter from VFS_MOUNT(). Nobody on tech-kern knew what it was supposed to be used for and wrstuden gave a go-ahead * while rototilling, convert file systems which went easily to use VFS_PROTOS() instead of manually prototyping the methods
|
1.28.8.1 |
| 31-Jul-2007 |
pooka | file ptyfs_vfsops.c was added on branch matt-mips64 on 2007-07-31 21:14:19 +0000
|
1.28.6.1 |
| 06-Oct-2007 |
yamt | sync with head.
|
1.28.4.3 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.28.4.2 |
| 09-Jan-2008 |
matt | sync with HEAD
|
1.28.4.1 |
| 06-Nov-2007 |
matt | sync with HEAD
|
1.28.2.2 |
| 27-Nov-2007 |
joerg | Sync with HEAD. amd64 Xen support needs testing.
|
1.28.2.1 |
| 02-Oct-2007 |
joerg | Sync with HEAD.
|
1.29.4.2 |
| 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.29.4.1 |
| 08-Dec-2007 |
mjf | Sync with HEAD.
|
1.31.10.3 |
| 11-Mar-2010 |
yamt | sync with head
|
1.31.10.2 |
| 04-May-2009 |
yamt | sync with head.
|
1.31.10.1 |
| 16-May-2008 |
yamt | sync with head.
|
1.31.8.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.31.6.3 |
| 17-Jan-2009 |
mjf | Sync with HEAD.
|
1.31.6.2 |
| 29-Jun-2008 |
mjf | Sync with HEAD.
|
1.31.6.1 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.32.2.2 |
| 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
1.32.2.1 |
| 23-Jun-2008 |
wrstuden | Sync w/ -current. 34 merge conflicts to follow.
|
1.35.2.1 |
| 03-Jul-2008 |
simonb | Sync with head.
|
1.36.2.1 |
| 13-Dec-2008 |
haad | Update haad-dm branch to haad-dm-base2.
|
1.37.18.1 |
| 28-Apr-2014 |
sborrill | Pull up the following revisions(s) (requested by maxv in ticket #1901): sys/kern/vfs_syscalls.c: revision 1.478, 1.480 via patch sys/coda/coda_vfsops.c: revision 1.81 sys/fs/adosfs/advfsops.c: revision 1.70 sys/fs/cd9660/cd9660_vfsops.c: revision 1.84 sys/fs/efs/efs_vfsops.c: revision 1.25 sys/fs/filecorefs/filecore_vfsops.c: revision 1.76 sys/fs/hfs/hfs_vfsops.c: revision 1.31 sys/fs/msdosfs/msdosfs_vfsops.c: revision 1.107 sys/fs/ntfs/ntfs_vfsops.c: revision 1.94 sys/fs/ptyfs/ptyfs_vfsops.c: revision 1.50 via patch sys/fs/puffs/puffs_vfsops.c: revision 1.110 via patch sys/fs/smbfs/smbfs_vfsops.c: revision 1.100 sys/fs/sysvbfs/sysvbfs_vfsops.c: revision 1.43 sys/fs/tmpfs/tmpfs_vfsops.c: revision 1.59 via patch sys/fs/udf/udf_vfsops.c: revision 1.67 sys/fs/union/union_vfsops.c: revision 1.72 sys/fs/unionfs/unionfs_vfsops.c: revision 1.13 sys/kern/vfs_syscalls.c: revision 1.479 sys/miscfs/nullfs/null_vfsops.c: revision 1.88 via patch sys/miscfs/overlay/overlay_vfsops.c: revision 1.61 sys/miscfs/procfs/procfs_vfsops.c: revision 1.91 sys/miscfs/umapfs/umap_vfsops.c: revision 1.92 sys/nfs/nfs_vfsops.c: revision 1.227 sys/ufs/ext2fs/ext2fs_vfsops.c: revision 1.180 sys/ufs/ffs/ffs_vfsops.c: revision 1.297 sys/ufs/lfs/lfs_vfsops.c: revision 1.321 sys/ufs/mfs/mfs_vfsops.c: revision 1.107
Due to missing checks in the mount syscall, and a wrong assumption on the file systems side, the kernel could allocate an unbounded or zero-sized memory buffer, and could dereference a NULL pointer when particular arguments are given by a user.
|
1.37.14.1 |
| 28-Apr-2014 |
sborrill | Pull up the following revisions(s) (requested by maxv in ticket #1901): sys/kern/vfs_syscalls.c: revision 1.478, 1.480 via patch sys/coda/coda_vfsops.c: revision 1.81 sys/fs/adosfs/advfsops.c: revision 1.70 sys/fs/cd9660/cd9660_vfsops.c: revision 1.84 sys/fs/efs/efs_vfsops.c: revision 1.25 sys/fs/filecorefs/filecore_vfsops.c: revision 1.76 sys/fs/hfs/hfs_vfsops.c: revision 1.31 sys/fs/msdosfs/msdosfs_vfsops.c: revision 1.107 sys/fs/ntfs/ntfs_vfsops.c: revision 1.94 sys/fs/ptyfs/ptyfs_vfsops.c: revision 1.50 via patch sys/fs/puffs/puffs_vfsops.c: revision 1.110 via patch sys/fs/smbfs/smbfs_vfsops.c: revision 1.100 sys/fs/sysvbfs/sysvbfs_vfsops.c: revision 1.43 sys/fs/tmpfs/tmpfs_vfsops.c: revision 1.59 via patch sys/fs/udf/udf_vfsops.c: revision 1.67 sys/fs/union/union_vfsops.c: revision 1.72 sys/fs/unionfs/unionfs_vfsops.c: revision 1.13 sys/kern/vfs_syscalls.c: revision 1.479 sys/miscfs/nullfs/null_vfsops.c: revision 1.88 via patch sys/miscfs/overlay/overlay_vfsops.c: revision 1.61 sys/miscfs/procfs/procfs_vfsops.c: revision 1.91 sys/miscfs/umapfs/umap_vfsops.c: revision 1.92 sys/nfs/nfs_vfsops.c: revision 1.227 sys/ufs/ext2fs/ext2fs_vfsops.c: revision 1.180 sys/ufs/ffs/ffs_vfsops.c: revision 1.297 sys/ufs/lfs/lfs_vfsops.c: revision 1.321 sys/ufs/mfs/mfs_vfsops.c: revision 1.107
Due to missing checks in the mount syscall, and a wrong assumption on the file systems side, the kernel could allocate an unbounded or zero-sized memory buffer, and could dereference a NULL pointer when particular arguments are given by a user.
|
1.37.6.2 |
| 09-Nov-2008 |
christos | account for major and minor being unsigned long long
|
1.37.6.1 |
| 26-Oct-2008 |
christos | file ptyfs_vfsops.c was added on branch christos-time_t on 2008-11-09 02:05:20 +0000
|
1.37.4.1 |
| 25-Apr-2014 |
sborrill | Pull up the following revisions(s) (requested by maxv in ticket #1901): sys/kern/vfs_syscalls.c: revision 1.478, 1.480 via patch sys/coda/coda_vfsops.c: revision 1.81 sys/fs/adosfs/advfsops.c: revision 1.70 sys/fs/cd9660/cd9660_vfsops.c: revision 1.84 sys/fs/efs/efs_vfsops.c: revision 1.25 sys/fs/filecorefs/filecore_vfsops.c: revision 1.76 sys/fs/hfs/hfs_vfsops.c: revision 1.31 sys/fs/msdosfs/msdosfs_vfsops.c: revision 1.107 sys/fs/ntfs/ntfs_vfsops.c: revision 1.94 sys/fs/ptyfs/ptyfs_vfsops.c: revision 1.50 via patch sys/fs/puffs/puffs_vfsops.c: revision 1.110 via patch sys/fs/smbfs/smbfs_vfsops.c: revision 1.100 sys/fs/sysvbfs/sysvbfs_vfsops.c: revision 1.43 sys/fs/tmpfs/tmpfs_vfsops.c: revision 1.59 via patch sys/fs/udf/udf_vfsops.c: revision 1.67 sys/fs/union/union_vfsops.c: revision 1.72 sys/fs/unionfs/unionfs_vfsops.c: revision 1.13 sys/kern/vfs_syscalls.c: revision 1.479 sys/miscfs/nullfs/null_vfsops.c: revision 1.88 via patch sys/miscfs/overlay/overlay_vfsops.c: revision 1.61 sys/miscfs/procfs/procfs_vfsops.c: revision 1.91 sys/miscfs/umapfs/umap_vfsops.c: revision 1.92 sys/nfs/nfs_vfsops.c: revision 1.227 sys/ufs/ext2fs/ext2fs_vfsops.c: revision 1.180 sys/ufs/ffs/ffs_vfsops.c: revision 1.297 sys/ufs/lfs/lfs_vfsops.c: revision 1.321 sys/ufs/mfs/mfs_vfsops.c: revision 1.107
Due to missing checks in the mount syscall, and a wrong assumption on the file systems side, the kernel could allocate an unbounded or zero-sized memory buffer, and could dereference a NULL pointer when particular arguments are given by a user.
|
1.37.2.2 |
| 28-Apr-2009 |
skrll | Sync with HEAD.
|
1.37.2.1 |
| 19-Jan-2009 |
skrll | Sync with HEAD.
|
1.38.2.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
|
1.42.22.3 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.42.22.2 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.42.22.1 |
| 20-Nov-2012 |
tls | Resync to 2012-11-19 00:00:00 UTC
|
1.42.20.1 |
| 01-Nov-2012 |
matt | sync with netbsd-6-0-RELEASE.
|
1.42.18.3 |
| 27-Aug-2014 |
msaitoh | Pull up following revision(s) (requested by maxv in ticket #1115): sys/miscfs/umapfs/umap_vfsops.c: revision 1.94 sys/fs/ptyfs/ptyfs_vfsops.c: revision 1.52 Overflow if *data_len == OSIZE and args->version >= PTYFS_ARGSVERSION. Sent on tech-kern@, ok christos@ 1) 'error' is returned while it does not even hold an error code. Which means that zero is returned, and the kernel keeps mounting (and it probably ends up in a deadlock/memory corruption somewhere). 2) 'nentries' and 'gnentries' are int and user-controlled, and there's no check to ensure they are greater than zero. Since they are used to compute the size of two copyin's, a user can control the copied size by giving a negative value (like 128-2^29), and thus overwrite kernel memory. Both triggerable from root only.
|
1.42.18.2 |
| 21-Apr-2014 |
bouyer | Pull up following revision(s) (requested by maxv in ticket #1050): sys/ufs/chfs/chfs_vfsops.c: revision 1.11 sys/fs/unionfs/unionfs_vfsops.c: revision 1.13 sys/fs/nilfs/nilfs_vfsops.c: revision 1.16 sys/ufs/mfs/mfs_vfsops.c: revision 1.107 sys/fs/sysvbfs/sysvbfs_vfsops.c: revision 1.43 sys/ufs/ffs/ffs_vfsops.c: revision 1.297 sys/kern/vfs_syscalls.c: revision 1.478 sys/kern/vfs_syscalls.c: revision 1.479 sys/fs/puffs/puffs_vfsops.c: revision 1.110 sys/fs/cd9660/cd9660_vfsops.c: revision 1.84 sys/nfs/nfs_vfsops.c: revision 1.227 sys/fs/v7fs/v7fs_vfsops.c: revision 1.10 sys/ufs/ext2fs/ext2fs_vfsops.c: revision 1.180 sys/miscfs/umapfs/umap_vfsops.c: revision 1.92 sys/fs/filecorefs/filecore_vfsops.c: revision 1.76 sys/miscfs/nullfs/null_vfsops.c: revision 1.88 sys/fs/ptyfs/ptyfs_vfsops.c: revision 1.50 sys/coda/coda_vfsops.c: revision 1.81 sys/ufs/lfs/lfs_vfsops.c: revision 1.321 sys/fs/tmpfs/tmpfs_vfsops.c: revision 1.59 sys/fs/hfs/hfs_vfsops.c: revision 1.31 sys/miscfs/overlay/overlay_vfsops.c: revision 1.61 sys/fs/union/union_vfsops.c: revision 1.72 sys/fs/ntfs/ntfs_vfsops.c: revision 1.94 sys/kern/vfs_syscalls.c: revision 1.480 sys/fs/efs/efs_vfsops.c: revision 1.25 sys/kern/vfs_syscalls.c: revision 1.482 sys/fs/msdosfs/msdosfs_vfsops.c: revision 1.107 external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c: revision 1.12 sys/miscfs/procfs/procfs_vfsops.c: revision 1.91 sys/fs/smbfs/smbfs_vfsops.c: revision 1.100 sys/fs/adosfs/advfsops.c: revision 1.70 sys/fs/udf/udf_vfsops.c: revision 1.67 Limit check for 'data_len'. Otherwise a (un)privileged user can easily panic the system by passing a huge size. ok christos@ An (un)privileged user can easily make the kernel dereference a NULL pointer. The kernel allows 'data' to be NULL; it's the fs's responsibility to ensure that it isn't NULL (if the fs actually needs data). ok christos@ Some fs's - like kernfs - set their vfs_min_mount_data to zero. Add a check to prevent an (un)privileged user from requesting a zero-sized allocation (and thus a panic). This thing is totally buggy: 'data_len' is modified by the fs, so calling kmem_free with it while its value has changed since the kmem_alloc is far from being a good idea. If the kernel figures out that something mismatches, it will panic (typically with kernfs).
|
1.42.18.1 |
| 01-Oct-2012 |
riz | branches: 1.42.18.1.2; 1.42.18.1.4; Pull up following revision(s) (requested by christos in ticket #566): sbin/mount_ptyfs/mount_ptyfs.8: revision 1.11 sbin/mount_ptyfs/mount_ptyfs.8: revision 1.12 sys/fs/ptyfs/ptyfs.h: revision 1.9 sbin/mount_ptyfs/mount_ptyfs.c: revision 1.14 sys/fs/ptyfs/ptyfs_vfsops.c: revision 1.43 sys/fs/ptyfs/ptyfs_vfsops.c: revision 1.44 Does not make sense to mount this as NFS, so it is not a bug. We can now mount multiple instances, but all of them show all the ptys. let us get mounted multiple times. remove -c and chroot option; they are always on now Always do the chroot filename mapping; it is pointless not to do it.
|
1.42.18.1.4.2 |
| 27-Aug-2014 |
msaitoh | Pull up following revision(s) (requested by maxv in ticket #1115): sys/miscfs/umapfs/umap_vfsops.c: revision 1.94 sys/fs/ptyfs/ptyfs_vfsops.c: revision 1.52 Overflow if *data_len == OSIZE and args->version >= PTYFS_ARGSVERSION. Sent on tech-kern@, ok christos@ 1) 'error' is returned while it does not even hold an error code. Which means that zero is returned, and the kernel keeps mounting (and it probably ends up in a deadlock/memory corruption somewhere). 2) 'nentries' and 'gnentries' are int and user-controlled, and there's no check to ensure they are greater than zero. Since they are used to compute the size of two copyin's, a user can control the copied size by giving a negative value (like 128-2^29), and thus overwrite kernel memory. Both triggerable from root only.
|
1.42.18.1.4.1 |
| 21-Apr-2014 |
bouyer | Pull up following revision(s) (requested by maxv in ticket #1050): sys/ufs/chfs/chfs_vfsops.c: revision 1.11 sys/fs/unionfs/unionfs_vfsops.c: revision 1.13 sys/fs/nilfs/nilfs_vfsops.c: revision 1.16 sys/ufs/mfs/mfs_vfsops.c: revision 1.107 sys/fs/sysvbfs/sysvbfs_vfsops.c: revision 1.43 sys/ufs/ffs/ffs_vfsops.c: revision 1.297 sys/kern/vfs_syscalls.c: revision 1.478 sys/kern/vfs_syscalls.c: revision 1.479 sys/fs/puffs/puffs_vfsops.c: revision 1.110 sys/fs/cd9660/cd9660_vfsops.c: revision 1.84 sys/nfs/nfs_vfsops.c: revision 1.227 sys/fs/v7fs/v7fs_vfsops.c: revision 1.10 sys/ufs/ext2fs/ext2fs_vfsops.c: revision 1.180 sys/miscfs/umapfs/umap_vfsops.c: revision 1.92 sys/fs/filecorefs/filecore_vfsops.c: revision 1.76 sys/miscfs/nullfs/null_vfsops.c: revision 1.88 sys/fs/ptyfs/ptyfs_vfsops.c: revision 1.50 sys/coda/coda_vfsops.c: revision 1.81 sys/ufs/lfs/lfs_vfsops.c: revision 1.321 sys/fs/tmpfs/tmpfs_vfsops.c: revision 1.59 sys/fs/hfs/hfs_vfsops.c: revision 1.31 sys/miscfs/overlay/overlay_vfsops.c: revision 1.61 sys/fs/union/union_vfsops.c: revision 1.72 sys/fs/ntfs/ntfs_vfsops.c: revision 1.94 sys/kern/vfs_syscalls.c: revision 1.480 sys/fs/efs/efs_vfsops.c: revision 1.25 sys/kern/vfs_syscalls.c: revision 1.482 sys/fs/msdosfs/msdosfs_vfsops.c: revision 1.107 external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c: revision 1.12 sys/miscfs/procfs/procfs_vfsops.c: revision 1.91 sys/fs/smbfs/smbfs_vfsops.c: revision 1.100 sys/fs/adosfs/advfsops.c: revision 1.70 sys/fs/udf/udf_vfsops.c: revision 1.67 Limit check for 'data_len'. Otherwise a (un)privileged user can easily panic the system by passing a huge size. ok christos@ An (un)privileged user can easily make the kernel dereference a NULL pointer. The kernel allows 'data' to be NULL; it's the fs's responsibility to ensure that it isn't NULL (if the fs actually needs data). ok christos@ Some fs's - like kernfs - set their vfs_min_mount_data to zero. Add a check to prevent an (un)privileged user from requesting a zero-sized allocation (and thus a panic). This thing is totally buggy: 'data_len' is modified by the fs, so calling kmem_free with it while its value has changed since the kmem_alloc is far from being a good idea. If the kernel figures out that something mismatches, it will panic (typically with kernfs).
|
1.42.18.1.2.2 |
| 27-Aug-2014 |
msaitoh | Pull up following revision(s) (requested by maxv in ticket #1115): sys/miscfs/umapfs/umap_vfsops.c: revision 1.94 sys/fs/ptyfs/ptyfs_vfsops.c: revision 1.52 Overflow if *data_len == OSIZE and args->version >= PTYFS_ARGSVERSION. Sent on tech-kern@, ok christos@ 1) 'error' is returned while it does not even hold an error code. Which means that zero is returned, and the kernel keeps mounting (and it probably ends up in a deadlock/memory corruption somewhere). 2) 'nentries' and 'gnentries' are int and user-controlled, and there's no check to ensure they are greater than zero. Since they are used to compute the size of two copyin's, a user can control the copied size by giving a negative value (like 128-2^29), and thus overwrite kernel memory. Both triggerable from root only.
|
1.42.18.1.2.1 |
| 21-Apr-2014 |
bouyer | Pull up following revision(s) (requested by maxv in ticket #1050): sys/ufs/chfs/chfs_vfsops.c: revision 1.11 sys/fs/unionfs/unionfs_vfsops.c: revision 1.13 sys/fs/nilfs/nilfs_vfsops.c: revision 1.16 sys/ufs/mfs/mfs_vfsops.c: revision 1.107 sys/fs/sysvbfs/sysvbfs_vfsops.c: revision 1.43 sys/ufs/ffs/ffs_vfsops.c: revision 1.297 sys/kern/vfs_syscalls.c: revision 1.478 sys/kern/vfs_syscalls.c: revision 1.479 sys/fs/puffs/puffs_vfsops.c: revision 1.110 sys/fs/cd9660/cd9660_vfsops.c: revision 1.84 sys/nfs/nfs_vfsops.c: revision 1.227 sys/fs/v7fs/v7fs_vfsops.c: revision 1.10 sys/ufs/ext2fs/ext2fs_vfsops.c: revision 1.180 sys/miscfs/umapfs/umap_vfsops.c: revision 1.92 sys/fs/filecorefs/filecore_vfsops.c: revision 1.76 sys/miscfs/nullfs/null_vfsops.c: revision 1.88 sys/fs/ptyfs/ptyfs_vfsops.c: revision 1.50 sys/coda/coda_vfsops.c: revision 1.81 sys/ufs/lfs/lfs_vfsops.c: revision 1.321 sys/fs/tmpfs/tmpfs_vfsops.c: revision 1.59 sys/fs/hfs/hfs_vfsops.c: revision 1.31 sys/miscfs/overlay/overlay_vfsops.c: revision 1.61 sys/fs/union/union_vfsops.c: revision 1.72 sys/fs/ntfs/ntfs_vfsops.c: revision 1.94 sys/kern/vfs_syscalls.c: revision 1.480 sys/fs/efs/efs_vfsops.c: revision 1.25 sys/kern/vfs_syscalls.c: revision 1.482 sys/fs/msdosfs/msdosfs_vfsops.c: revision 1.107 external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c: revision 1.12 sys/miscfs/procfs/procfs_vfsops.c: revision 1.91 sys/fs/smbfs/smbfs_vfsops.c: revision 1.100 sys/fs/adosfs/advfsops.c: revision 1.70 sys/fs/udf/udf_vfsops.c: revision 1.67 Limit check for 'data_len'. Otherwise a (un)privileged user can easily panic the system by passing a huge size. ok christos@ An (un)privileged user can easily make the kernel dereference a NULL pointer. The kernel allows 'data' to be NULL; it's the fs's responsibility to ensure that it isn't NULL (if the fs actually needs data). ok christos@ Some fs's - like kernfs - set their vfs_min_mount_data to zero. Add a check to prevent an (un)privileged user from requesting a zero-sized allocation (and thus a panic). This thing is totally buggy: 'data_len' is modified by the fs, so calling kmem_free with it while its value has changed since the kmem_alloc is far from being a good idea. If the kernel figures out that something mismatches, it will panic (typically with kernfs).
|
1.42.12.2 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.42.12.1 |
| 30-Oct-2012 |
yamt | sync with head
|
1.44.2.1 |
| 18-May-2014 |
rmind | sync with head
|
1.49.2.1 |
| 10-Aug-2014 |
tls | Rebase.
|
1.50.2.1 |
| 17-Aug-2014 |
riz | Pull up following revision(s) (requested by hannken in ticket #29): sbin/mount_ptyfs/mount_ptyfs.8: revision 1.14 sys/fs/ptyfs/ptyfs_vnops.c: revision 1.48 sys/fs/ptyfs/ptyfs_vnops.c: revision 1.49 sys/fs/ptyfs/ptyfs_subr.c: revision 1.30 sys/fs/ptyfs/ptyfs_subr.c: revision 1.31 sys/fs/ptyfs/ptyfs_vfsops.c: revision 1.51 sys/fs/ptyfs/ptyfs_subr.c: revision 1.32 sys/fs/ptyfs/ptyfs_vfsops.c: revision 1.52 sys/fs/ptyfs/ptyfs_vfsops.c: revision 1.53 sys/fs/ptyfs/ptyfs.h: revision 1.13 sys/fs/ptyfs/ptyfs.h: revision 1.14 Needs HASH_SLIST, not HASH_LIST. Change ptyfs to vcache. - Use (type, minor) as key. - Change ptyfs_allocvp to return a referenced vnode and lock where needed. - Remove unneeded vnode backpointer ptyfs_vnode. - Keep a single hashlist for pty nodes to make their attributes persistent. OK: Christos Zoulas Overflow if *data_len == OSIZE and args->version >= PTYFS_ARGSVERSION. Sent on tech-kern@, ok christos@ Adapt to reality -- already open BSD style nodes do not appear on ptyfs mounts (this changed some months ago). - Add a map of active controlling ptys per mount and no longer abuse the vnode lifecycle. - No longer set "recycle" on VOP_INACTIVE(). - Make ptyfs_used_get() private to ptyfs_subr.c - Stop copying device attributes from traditional ptys on first allocation. - Remove unneeded argument "lwp" from ptyfs_allocvp() and ptyfs_free_get(). OK: Christos Zoulas
|
1.55.6.1 |
| 21-Apr-2017 |
bouyer | Sync with HEAD
|
1.55.4.1 |
| 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.55.2.1 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
1.56.20.1 |
| 17-Jan-2020 |
ad | Sync with head.
|
1.56.14.1 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|