FreeBSD src
Go to file
Don Lewis 63a4675d89 Hopefully fix Coverity CID 1008328 (Out-of-bounds write) in /bin/sh.
Replace the magic constant 127 in the loop interation count with
"PROMPTLEN - 1".

gethostname() is not guaranteed to NUL terminate the destination
string if it is too short. Decrease the length passed to gethostname()
by one, and add a NUL at the end of the buffer to make sure the
following loop to find the end of the name properly terminates.

The default: case is the likely cause of Coverity CID 1008328.  If
i is 126 at the top of the loop interation where the default case
is triggered, i will be incremented to 127 by the default case,
then incremented to 128 at the top of the loop before being compared
to 127 (PROMPTLENT - 1) and terminating the loop. Then the NUL
termination code after the loop will write to ps[128].  Fix by
checking for overflow before incrementing the index and storing the
second character in the buffer.

These fixes are not guaranteed to satisfy Coverity. The code that
increments i in the 'h'/'H' and 'w'/'W' cases may be beyond its
capability to analyze, but the code appears to be safe.

Reported by:	Coverity
CID:		1008328
Reviewed by:	jilles, cem
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D6482
2016-05-23 01:01:23 +00:00
bin Hopefully fix Coverity CID 1008328 (Out-of-bounds write) in /bin/sh. 2016-05-23 01:01:23 +00:00
cddl Remove the old version of the DTraceToolkit from the source tree. 2016-05-19 19:51:39 +00:00
contrib Silence top(1) compiler warnings 2016-05-22 04:17:00 +00:00
crypto libkrb5: Fix potential double-free 2016-05-11 23:25:59 +00:00
etc Better document security_show_{success,info,badconfig} in /etc/periodic.conf 2016-05-21 02:14:11 +00:00
gnu gnugrep: Update the configuration. 2016-05-22 20:17:55 +00:00
include WITH_META_MODE: Disable cookie handling for include installation. 2016-05-21 01:31:57 +00:00
kerberos5 Remove the old depend (mkdep) code and make FAST_DEPEND the one true way. 2016-03-30 23:50:23 +00:00
lib vfork(2): Mention some risks of calling vfork() from application code. 2016-05-22 13:32:45 +00:00
libexec Declare line[] in the outermost scope of retrieve() instead of 2016-05-13 01:52:41 +00:00
release Document r296633, OpenSSH updated to 7.2p2. 2016-05-12 19:32:40 +00:00
rescue Split /rescue into its own package. 2016-02-08 14:27:45 +00:00
sbin Add support for managing Shingled Magnetic Recording (SMR) drives. 2016-05-19 14:08:36 +00:00
secure Regen x86 assembly files for r299480. 2016-05-11 20:11:21 +00:00
share Restore the translation of armv6hf->arm when generating MACHINE_CPUARCH. 2016-05-22 21:31:20 +00:00
sys Mark swap-related proc sysctls as not requiring Giant. 2016-05-22 23:28:23 +00:00
targets targets/Makefile: fix a typo (derrived -> derived). 2016-05-18 10:59:16 +00:00
tests kern_descrip_test: Fix trivial buffer overrun with readlink(2) 2016-05-12 03:44:29 +00:00
tools Opportunistically skip building a cross-compiler with SYSTEM_COMPILER set. 2016-05-21 01:32:23 +00:00
usr.bin Fix humanized decoding of struct stat with respect to .st_mtim 2016-05-22 18:20:45 +00:00
usr.sbin bsdinstall/zfsboot GPT+BIOS+GELI installs now make use of GELIBOOT 2016-05-22 20:31:52 +00:00
.arcconfig Remove project.name which is a product of a bygone era. 2016-04-21 04:33:07 +00:00
.arclint phabricator related changes: 2015-04-20 20:33:22 +00:00
COPYRIGHT Bump copyright year. 2015-12-31 11:21:45 +00:00
LOCKS Explicitly require Security Officer's approval for kernel PRNG bits. 2013-09-17 14:19:05 +00:00
MAINTAINERS Add myself to MAINTAINERS. 2016-03-14 16:27:43 +00:00
Makefile Make armv6 hard float abi by default. Kill armv6hf. 2016-05-18 06:01:18 +00:00
Makefile.inc1 Opportunistically skip building a cross-compiler with SYSTEM_COMPILER set. 2016-05-21 01:32:23 +00:00
Makefile.libcompat Set CPP from XCPP for the libcompat build. 2016-04-15 18:32:05 +00:00
ObsoleteFiles.inc Drop trailing asterisks. 2016-05-20 17:41:12 +00:00
README README: remove nonexistent 'games' directory. 2016-05-18 10:43:13 +00:00
UPDATING Remove brk and sbrk from arm64. They were defined in The Single UNIX 2016-05-20 15:04:48 +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.  See build(7)
and 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.  See build(7), config(8),
and http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html
for more information.

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 kernel configuration files reside in the sys/<arch>/conf
sub-directory.  GENERIC is the default configuration used in release builds.
NOTES contains entries and documentation for all possible
devices, not just those commonly used.


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.

sys		Kernel sources.

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:

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