FreeBSD src
Go to file
Dag-Erling Smørgrav 32bf7cdf5a Let vfs_lookup() return ENOTDIR if the path has a trailing slash and
the last component is a symlink to something that isn't a directory.

We introduce a new namei flag, TRAILINGSLASH, which is set by lookup()
if the last component is followed by a slash.  The trailing slash is
then stripped, as before.  If the final component is a symlink,
lookup() will return to namei(), which will expand the symlink and
call lookup() with the new path.  When all symlinks have been
resolved, lookup() checks if the TRAILINGSLASH flag is set, and if it
is, and the vnode it ended up with is not a directory, it returns
ENOTDIR.

PR:		kern/21768
Submitted by:	Eygene Ryabinkin <rea-fbsd@codelabs.ru>
MFC after:	3 weeks
2009-05-29 10:02:44 +00:00
bin Fix various cases with 3 or 4 parameters in test(1) to be POSIX compliant. 2009-05-26 22:33:10 +00:00
cddl Fix lockstat breakage to arm/powerpc buildworld. 2009-05-27 22:41:28 +00:00
contrib Add an EXIT STATUS section to the manual page. Currently, nc(1) 2009-05-29 07:18:31 +00:00
crypto Upgrade to OpenSSH 5.2p1. 2009-05-22 18:46:28 +00:00
etc Update this script so that it handles different ruleset failures 2009-05-28 07:43:06 +00:00
games Too good to pass. 2009-03-06 13:24:54 +00:00
gnu Change the internal buffer used to store input lines from a static buffer 2009-05-08 02:18:46 +00:00
include Delete the old USB stack. The new stack has settled in and has all the 2009-05-27 16:16:56 +00:00
kerberos5
lib Document how to enable strict RFC 1034 enforcements. 2009-05-29 07:55:44 +00:00
libexec Increase the size of the static TLS area slightly (required for the NVidia's 2009-05-27 18:54:31 +00:00
release nge(4) should work on all archs now. 2009-05-21 10:04:51 +00:00
rescue Add zfs/zpool to rescue programs 2009-05-23 00:47:23 +00:00
sbin Make dump -W show the level correctly. 2009-05-29 07:26:44 +00:00
secure Upgrade to OpenSSH 5.2p1. 2009-05-22 18:46:28 +00:00
share Reverse the logic for ADAPTIVE_SX option and enable it by default. 2009-05-29 01:49:27 +00:00
sys Let vfs_lookup() return ENOTDIR if the path has a trailing slash and 2009-05-29 10:02:44 +00:00
tools Add a regression test for multiple threads of the same process acquiring the same fcntl lock. 2009-05-28 02:39:07 +00:00
usr.bin Use prototype for usage(). This makes perror(1) WARNS=6 clean. 2009-05-28 21:37:40 +00:00
usr.sbin Change the "-4" argument for nfsd and mountd to "-e" to avoid 2009-05-28 20:28:13 +00:00
COPYRIGHT Bump the odometer of the years. A little early this year for 7.1R. 2008-12-30 04:46:25 +00:00
LOCKS
MAINTAINERS Replace anholt with myself as drm maintainer. 2009-03-20 18:51:13 +00:00
Makefile Add a new world named 'mips' to our universe. 2009-04-01 17:11:50 +00:00
Makefile.inc1 Revert c190007 at the request of Ruslan. It was not correct because 2009-04-05 00:24:49 +00:00
ObsoleteFiles.inc Rename the queue macros I introduced last year. 2009-05-27 19:28:04 +00:00
README
UPDATING Reverse the logic for ADAPTIVE_SX option and enable it by default. 2009-05-29 01:49:27 +00:00

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

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, the most
commonly used one being ``world'', which rebuilds and installs
everything in the FreeBSD system from the source tree except the
kernel, the kernel-modules and the contents of /etc.  The ``world''
target should only be used in cases where the source tree has not
changed from the currently running version.  See:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
for more information, including setting make(1) variables.

The ``buildkernel'' and ``installkernel'' targets build and install
the kernel and the modules (see below).  Please see the top of
the Makefile in this directory for more information on the
standard build targets and compile-time flags.

Building a kernel is a somewhat more involved process, documentation
for which can be found at:
   http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html
And in the config(8) man page.
Note: If you want to build and install the kernel with the
``buildkernel'' and ``installkernel'' targets, you might need to build
world before.  More information is available in the handbook.

The sample kernel configuration files reside in the sys/<arch>/conf
sub-directory (assuming that you've installed the kernel sources), the
file named GENERIC being the one used to build your initial installation
kernel.  The file NOTES contains entries and documentation for all possible
devices, not just those commonly used.  It is the successor of the ancient
LINT file, but in contrast to LINT, it is not buildable as a kernel but a
pure reference and documentation file.


Source Roadmap:
---------------
bin		System/user commands.

contrib		Packages contributed by 3rd parties.

crypto		Cryptography stuff (see crypto/README).

etc		Template files for /etc.

games		Amusements.

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.

sys		Kernel sources.

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:

  http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/synching.html