FreeBSD src
Go to file
Rick Macklem 1f7104d720 Fix export_args ex_flags field so that is 64bits, the same as mnt_flags.
Since mnt_flags was upgraded to 64bits there has been a quirk in
"struct export_args", since it hold a copy of mnt_flags
in ex_flags, which is an "int" (32bits).
This happens to currently work, since all the flag bits used in ex_flags are
defined in the low order 32bits. However, new export flags cannot be defined.
Also, ex_anon is a "struct xucred", which limits it to 16 additional groups.
This patch revises "struct export_args" to make ex_flags 64bits and replaces
ex_anon with ex_uid, ex_ngroups and ex_groups (which points to a
groups list, so it can be malloc'd up to NGROUPS in size.
This requires that the VFS_CHECKEXP() arguments change, so I also modified the
last "secflavors" argument to be an array pointer, so that the
secflavors could be copied in VFS_CHECKEXP() while the export entry is locked.
(Without this patch VFS_CHECKEXP() returns a pointer to the secflavors
array and then it is used after being unlocked, which is potentially
a problem if the exports entry is changed.
In practice this does not occur when mountd is run with "-S",
but I think it is worth fixing.)

This patch also deleted the vfs_oexport_conv() function, since
do_mount_update() does the conversion, as required by the old vfs_cmount()
calls.

Reviewed by:	kib, freqlabs
Relnotes:	yes
Differential Revision:	https://reviews.freebsd.org/D25088
2020-06-14 00:10:18 +00:00
bin ps: remove xo_no_setlocale() call 2020-06-09 07:07:29 +00:00
cddl Restore the binary compatibility for link_map l_addr. 2020-05-21 22:24:23 +00:00
contrib nvi: fallback to ISO8859-1 as last resort 2020-06-13 14:11:02 +00:00
crypto Merge OpenSSL 1.1.1g. 2020-04-21 19:38:32 +00:00
etc Restrict default /root permissions 2020-06-04 16:04:19 +00:00
gnu Remove now-unused GNU as build infrastructure 2020-06-07 13:53:23 +00:00
include Add pthread_getname_np() and pthread_setname_np() aliases for 2020-06-10 22:13:24 +00:00
kerberos5 Update Makefile.depend files 2019-12-11 17:37:53 +00:00
lib procctl(2): document PROC_KPTI 2020-06-13 18:19:42 +00:00
libexec rtld: set osrel when in the direct exec mode. 2020-06-12 22:10:03 +00:00
release release: Fix arm GPT image 2020-06-10 14:10:48 +00:00
rescue rescue: Remove useless linking with libl 2020-03-24 07:08:02 +00:00
sbin Decode the "LACP Fast Timeout" LAGG option flag 2020-06-11 22:46:08 +00:00
secure Install 32-bit libcrypto engines in /usr/lib32/engines instead of 2020-06-01 18:58:09 +00:00
share Control for Special Register Buffer Data Sampling mitigation. 2020-06-12 22:14:45 +00:00
stand Minor cleanup of initialized variables 2020-06-12 21:48:46 +00:00
sys Fix export_args ex_flags field so that is 64bits, the same as mnt_flags. 2020-06-14 00:10:18 +00:00
targets libalias: retire cuseeme support 2020-05-16 02:29:10 +00:00
tests Skip sys.net.if_lagg_test.lacp_linkstate_destroy_stress in CI because of panic 2020-06-11 18:59:57 +00:00
tools [wlanstats] Add the per-node amsdu hardware decap'ed receive stats. 2020-06-12 06:10:27 +00:00
usr.bin Fix ldd for PIE binaries after rtld stopped accepting binaries for dlopen. 2020-06-13 18:21:31 +00:00
usr.sbin Add le_read_channel_map and le_read_remote_features command 2020-06-10 05:01:00 +00:00
.arcconfig callsign isn't required anymore 2016-09-29 06:19:45 +00:00
.arclint arc lint: ignore /tests/ in chmod 2017-12-19 03:38:06 +00:00
.cirrus.yml Cirrus-CI: increase timeout to 120m 2020-02-19 15:56:40 +00:00
.clang-format Add a basic clang-format configuration file 2019-06-07 15:23:52 +00:00
.gitattributes Add a basic clang-format configuration file 2019-06-07 15:23:52 +00:00
.gitignore .gitignore: Add LINT kernel configurations generated into SRCDIR 2019-08-10 18:22:22 +00:00
COPYRIGHT Happy New Year 2020! 2019-12-31 16:01:36 +00:00
LOCKS LOCKS: update current locks 2018-06-09 03:08:04 +00:00
MAINTAINERS ice(4): Introduce new driver for Intel E800 Ethernet controllers 2020-05-26 23:35:10 +00:00
Makefile Import bmake-20200606 2020-06-09 02:07:26 +00:00
Makefile.inc1 Retire BINUTILS and BINUTILS_BOOTSTRAP options 2020-06-07 00:07:21 +00:00
Makefile.libcompat Stop building libl and liby 2020-03-26 08:23:09 +00:00
Makefile.sys.inc AUTO_OBJ: For all top-level targets enforce using an OBJDIR. 2017-12-05 21:29:47 +00:00
ObsoleteFiles.inc Retire BINUTILS and BINUTILS_BOOTSTRAP options 2020-06-07 00:07:21 +00:00
README Import OpenSSL 1.1.1g. 2020-04-21 19:07:46 +00:00
README.md README: add generic notes about GENERIC and NOTES 2018-06-17 19:44:24 +00:00
RELNOTES RELNOTES: Post-portem note about sed(1) \x support 2020-06-08 02:42:41 +00:00
UPDATING RELNOTES and UPDATING: Document the new policy on read(2) of dirfd 2020-06-04 18:19:16 +00:00

FreeBSD Source:

This is the top level of the FreeBSD source directory. This file was last revised on: FreeBSD

FreeBSD is an operating system used to power modern servers, desktops, and embedded platforms. A large community has continually developed it for more than thirty years. Its advanced networking, security, and storage features have made FreeBSD the platform of choice for many of the busiest web sites and most pervasive embedded networking and storage devices.

For copyright information, please see the file COPYRIGHT in this directory. Additional copyright information also exists for some sources in this tree - please see the specific source directories for more information.

The Makefile in this directory supports a number of targets for building components (or all) of the FreeBSD source tree. See build(7), config(8), https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html, and https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html for more information, including setting make(1) variables.

Source Roadmap:

bin		System/user commands.

cddl		Various commands and libraries under the Common Development
		and Distribution License.

contrib		Packages contributed by 3rd parties.

crypto		Cryptography stuff (see crypto/README).

etc		Template files for /etc.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

kerberos5	Kerberos5 (Heimdal) package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

rescue		Build system for statically linked /rescue utilities.

sbin		System commands.

secure		Cryptographic libraries and commands.

share		Shared resources.

stand		Boot loader sources.

sys		Kernel sources.

sys/<arch>/conf Kernel configuration files. GENERIC is the configuration
		used in release builds. NOTES contains documentation of
		all possible entries.

tests		Regression tests which can be run by Kyua.  See tests/README
		for additional information.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.

For information on synchronizing your source tree with one or more of the FreeBSD Project's development branches, please see:

https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/current-stable.html