2928 Commits

Author SHA1 Message Date
jilles
aa479658a0 MFC r284779: sh: Fix some arithmetic undefined behaviour.
Fix shifts of possibly negative numbers found with ubsan and avoid signed
integer overflow when hashing an extremely long command name.
2015-08-15 19:58:00 +00:00
des
5daf218e81 MFH (r277531): don't include newvers in freebsd-version 2015-07-02 11:46:40 +00:00
des
fdde4f4cd7 MFH (r275659): fix dependency on newvers.sh 2015-06-30 15:32:57 +00:00
delphij
56a4d3de60 MFC r283257:
Eliminate unneeded includes.
2015-06-05 00:39:34 +00:00
smh
3236725806 MFC r282208:
Standardise chmod, chflags, chown and chgrp recursive symlink processing

Relnotes:	Yes
Sponsored by:	Multiplay
2015-06-01 09:04:57 +00:00
rodrigc
26d3f673f7 Merge: 278618 278633 278636 278653 278742 278776 279121
Multiple fixes for pgrep and pkill tests.

PR: 19109
2015-05-23 09:48:59 +00:00
delphij
f14ca7e990 MFC r282608:
date(1): Make -r behave like GNU's version when the option can not be
interpreted as a number, which checks the file's modification time and
use that as the date/time value.

This improves compatibility with GNU coreutils's version of date(1).
2015-05-21 18:59:11 +00:00
jilles
c595c29b97 MFC r282482: cp: Remove fts sorting.
In an attempt to improve performance, cp reordered directories first
(although the comment says directories last). This is not effective with new
UFS layout policies.

The sorting reorders multiple arguments passed to cp, which may be
undesirable.

Additionally, the comparison function does not induce a total order. Per
POSIX, this causes undefined behaviour in qsort().

NetBSD removed the sorting in 2009.

On filesystems that return directory entries in hash/btree order, sorting by
d_fileno before statting improves performance on large directories. However,
this can only be implemented in fts(3).

PR:		53475
Reviewed by:	bde (in 2004)
2015-05-14 10:46:20 +00:00
tijl
b709ec868a MFC r275805:
Fix incorrect type of "invalids" argument in __iconv() prototype.

MFC r281550,281591:

Remove the const qualifier from iconv(3) to comply with POSIX:
http://pubs.opengroup.org/onlinepubs/9699919799/functions/iconv.html

Adjust all code that calls iconv.

PR:		199099
2015-04-30 16:08:47 +00:00
eadler
07d63652f3 MFC r280206:
Implement pax -O option to permit limiting a PAX archive to a single volume.

-O Force the archive to be one volume.  If a volume ends prematurely, pax will
not prompt for a new volume.

PR:		198481
2015-04-17 18:33:59 +00:00
dim
cb046ee5e6 MFC r280357:
Build expr with -fwrapv, since it relies on signed integer wrapping
having defined behavior.

Reported by:	rodrigc
2015-04-06 14:45:40 +00:00
jilles
051c616980 MFC r278848: symlink(7): Mention chflagsat() (can take AT_SYMLINK_NOFOLLOW). 2015-03-10 22:23:56 +00:00
jilles
0bf8cb7b51 MFC r276359: symlink(7): Note that stat(1) does not follow symlinks by
default.
2015-02-08 22:46:29 +00:00
ngie
15c31aa79c MFC r277358:
r277358 (by ngie):

  Integrate contrib/netbsd-tests/bin/expr into the build/kyua as bin/expr/tests

  Sponsored by: EMC / Isilon Storage Division
2015-01-26 11:49:06 +00:00
jilles
6f128b2d1a MFC r274254: sh(1): Mention portability issue with shifting zero positional
parameters.

Per Austin Group issue #459, shifting zero positional parameters may or may
not be considered an operand error (which causes the shell to exit in most
cases).
2015-01-04 19:02:50 +00:00
jilles
973fc27d21 MFC r271936: sh(1): Clarify that assignments before commands do not affect
expansions.

PR:		193759
2015-01-04 18:58:51 +00:00
ngie
0971283da1 MFC r272777,r272779,r272780,r272781,r272782,r272783,r272784,r272787,r272788:
r272777:

  Integrate usr.sbin/nmtree/tests from NetBSD into atf/kyua

  In collaboration with: pho
  Sponsored by: EMC / Isilon Storage Division

r272779:

  Integrate usr.sbin/basename/tests from NetBSD into atf/kyua

  In collaboration with: pho
  Sponsored by: EMC / Isilon Storage Division

r272780:

  Integrate usr.bin/cmp/tests from NetBSD into atf/kyua

  In collaboration with: sjg
  Sponsored by: EMC / Isilon Storage Division

r272781:

  Integrate usr.bin/dirname/tests from NetBSD into atf/kyua

  In collaboration with: pho, sjg
  Sponsored by: EMC / Isilon Storage Division

r272782:

  Integrate bin/sleep/tests from NetBSD into atf/kyua

  Sponsored by: EMC / Isilon Storage Division

r272783:

  Integrate usr.bin/cut/tests from NetBSD into atf/kyua

  Sponsored by: EMC / Isilon Storage Division

r272784:

  Integrate usr.bin/grep/tests from NetBSD into atf/kyua

  Sponsored by: EMC / Isilon Storage Division

r272787:

  Integrate usr.bin/diff/tests from NetBSD into atf/kyua at gnu/usr.bin/diff/tests

  Sponsored by: EMC / Isilon Storage Division

r272788:

  Integrate usr.bin/gzip/tests from NetBSD into atf/kyua

  Sponsored by: EMC / Isilon Storage Division
2015-01-01 02:04:44 +00:00
jilles
52bfb3cdd3 MFC r276037: sh: Remove EXP_REDIR.
EXP_REDIR was supposed to generate pathnames in redirection if exactly one
file matches, as permitted but not required by POSIX in interactive mode. It
is unlikely this will be implemented.

No functional change is intended.
2014-12-29 15:33:20 +00:00
jilles
eae2f34920 MFC r274854: sh: Use DQSYNTAX only while expanding, not SQSYNTAX.
Quoting during expansion only cares about CCTL, which is the same for
DQSYNTAX and SQSYNTAX.
2014-12-29 15:15:27 +00:00
jilles
ca31dd6023 MFC r273920: sh: Fix corruption of CTL* bytes in positional parameters in
redirection.

EXP_REDIR was not being checked for while expanding positional parameters in
redirection, so CTL* bytes were not being prefixed where they should be.
2014-12-29 15:11:07 +00:00
kib
38f7dd4bb8 MFC r275745:
Add facility to stop all userspace processes.

MFC r275753:
Fix gcc build.

MFC r275820:
Add missed break.
2014-12-27 00:55:14 +00:00
jilles
df71c47219 MFC r268576: sh: Correctly handle positional parameters beyond INT_MAX on
64-bit systems.

Currently, there can be no more than INT_MAX positional parameters. Make
sure to treat all higher ones as unset to avoid incorrect results and
crashes.

On 64-bit systems, our atoi() takes the low 32 bits of the strtol() and
sign-extends them.

On 32-bit systems, the call to atoi() returned INT_MAX for too high values
and there is not enough address space for so many positional parameters, so
there was no issue.

PR:		195918
2014-12-14 18:30:30 +00:00
rodrigc
42bcc4fbac MFC r272305
Fix pkill unit test.
2014-10-05 02:52:54 +00:00
gjb
5f63f50572 MFC r268376 (imp):
rm -rf can fail sometimes with an error from fts_read. Make it
  honor fflag to ignore fts_read errors, but stop deleting from
  that directory because no further progress can be made.

  When building a kernel with a high -j value on a high core count
  machine, during the cleanobj phase we can wind up doing multiple
  rm -rf at the same time for modules that have subdirectories. This
  exposed this race (sometimes) as fts_read can return an error if
  the directory is removed by another rm -rf. Since the intent of
  the -f flag was to ignore errors, even if this was a bug in
  fts_read, we should ignore the error like we've been instructed
  to do.

Approved by:	re (kib)
Sponsored by:	The FreeBSD Foundation
2014-10-01 16:18:40 +00:00
ngie
0d7257f533 MFC r269903:
Port date/bin/tests to ATF

 Phabric: D545
 Approved by: jmmv (mentor)
 Submitted by: keramida (earlier version)
 Sponsored by: Google, Inc
 Sponsored by: EMC / Isilon Storage Division
2014-08-29 02:21:02 +00:00
pfg
564b330f17 MFC r270256:
Always check the limits of array index variables before using them.

Obtained from:	DragonFlyBSD
2014-08-28 18:11:05 +00:00
kib
afeea342d6 MFC r269656:
Implement and use proc_realparent(9).

MFC r270024 (by markj):
Correct the order of arguments passed to LIST_INSERT_AFTER().

For merge, the p_treeflag member of struct proc was moved to the end
of the structure, to keep KBI intact.
2014-08-21 10:46:19 +00:00
jilles
5d7615994f MFC r268429: Don't install locale1.0 if MK_NLS == no.
The test locale1.0 depends on locale support; it is meaningless without a
working LC_MESSAGES.

I added an OptionalObsoleteFiles.inc entry.

PR:		181151
Submitted by:	Garrett Cooper (original version)
Sponsored by:	EMC / Isilon Storage Division
2014-08-20 19:39:07 +00:00
asomers
5482ed4923 MFC r269977
Skip pgrep-j and pkill-j if jail or jls is not installed.

Even though jail is part of the base system, it can be disabled by src.conf
settings. Therefore, it should be listed as a required program for tests that
use it.
2014-08-18 20:21:12 +00:00
pluknet
42ff249abc MFC r267196:
Add support for inspecting process flags set in p_flag2.
2014-06-26 08:55:06 +00:00
thomas
e767419662 MFC rev. 265593:
(dd_out): Fix handling of all-zeroes block at end of input with
conv=sparse.

PR:		bin/189174
PR:		bin/189284
Reviewed by:	kib
2014-05-21 07:21:36 +00:00
bdrewery
a0f7dc4feb MFC r265229,r265239:
Add -J to filter by matching jail IDs and names.
2014-05-17 02:32:47 +00:00
dumbbell
ee189cb17a date(1): Add "-R" flag to use RFC 2822 date and time output format [MFC]
As stated in the man page, this is equivalent to use "%a, %d %b %Y %T %z"
as the output format while LC_TIME is set to the "C" locale.

This is compatible with date(1) from the GNU core utilities.

This is an MFC of r264968 and r264970.
2014-05-03 13:19:11 +00:00
jmmv
1e4589b921 MFC various moves of tools/regressions/ tests to the new infrastructure.
- r263220 Migrate tools/regression/sbin/ to the new tests layout.
- r263222 Add Makefile missed in r263220.
- r263226 Migrate tools/regression/{usr.bin/lastcomm,usr.sbin}/ to the new tests layout.
- r263227 Migrate most of tools/regression/usr.bin/ to the new tests layout.
- r263345 Expand tabs that sneaked in into spaces.
- r263346 Migrate tools/regression/usr.bin/make/ to the new tests layout.
- r263348 Add Makefiles missed in r263346.
- r263351 Migrate tools/regression/usr.bin/pkill/ to the new tests layout.
- r263388 Mark multi_test as requiring /usr/share/dict/words.
- r263814 Fix path to the run.pl script to let these tests run.
- r264742 Prevent building tests when bootstrapping make.

This is 'make tinderbox' clean.
2014-04-27 01:15:10 +00:00
delphij
4882a37127 MFC r264059+264067:
Implement GNU's extension of 'status' operand.  The GNU syntax is
borrowed where syntax status=noxfer means no transfer statistics
and status=none means no status information at all.

This feature is useful because the statistics information can
sometimes be annoying, and redirecting stderr to /dev/null would
mean error messages also gets silenced.

Obtained from:	OpenBSD
2014-04-17 00:31:20 +00:00
jilles
07966b660e MFC r263847: sh: Fix memory leak with an assignment before a regular builtin 2014-04-15 18:29:05 +00:00
jilles
7ba0eb2fc1 MFC r263846: sh: Fix memory leak when trying to set a read only variable. 2014-04-15 18:24:24 +00:00
jmmv
63fa6c9a5b MFC refactoring of the *.test.mk files.
- r263161 Make bsd.test.mk the only public mk fragment for the building of tests.
- r263172 Move FreeBSD Test Suite-specific code to a suite.test.mk file.
- r263204 Add some documentation for bsd.test.mk.
- r263217 Document support for TAP-compliant Perl test programs.

This is "make tinderbox" clean.
2014-04-14 23:51:57 +00:00
jilles
813864aadb MFC r263777: sh: Fix possible memory leaks and double frees with unexpected
SIGINT.
2014-04-14 21:26:34 +00:00
dim
b4a5074609 MFC r263778:
Add a SUBDIR_PARALLEL option to bsd.subdir.mk, to allow make to process
all the SUBDIR entries in parallel, instead of serially.  Apply this
option to a selected number of Makefiles, which can greatly speed up the
build on multi-core machines, when using make -j.

This can be extended to more Makefiles later on, whenever they are
verified to work correctly with parallel building.

I tested this on a 24-core machine, with make -j48 buildworld (N = 6):

		before    stddev       after    stddev
		=======   ======       =======  ======
real time        1741.1     16.5         959.8     2.7
user time       12468.7     16.4       14393.0    16.8
sys  time        1825.0     54.8        2110.6    22.8

(user+sys)/real     8.2                   17.1

E.g. the build was approximately 45% faster in real time.  On machines
with less cores, or with lower -j settings, the speedup will not be as
impressive.  But at least you can now almost max out a machine with
buildworld!

Submitted by:	jilles

MFC r263833:

Enable parallel building for gnu/usr.bin and usr.bin/clang too.
2014-04-09 18:16:58 +00:00
jilles
b37f0c842b MFC r263195: sh: Add some consts. 2014-04-05 20:01:08 +00:00
jilles
76e2b229a4 MFC r262755: sh: Make argstr() return where it stopped and simplify expari()
using this.
2014-04-05 19:43:47 +00:00
jmmv
80efbcbbcd Sync sh(1) in stable/10 to head.
This is a MFC of all the commits listed below.

My original goal of this change was to only merge the move of the tests
from tools/regression/bin/ into the new layout (which include tests for
sh(1) and other tools as well).  However, doing so is tricky due to the
ongoing work in sh(1) and, especially, the many changes to its tests
since stable/10 was first branched.

Merging everything is the simplest way to achieve this goal and, as a
bonus point, we get various fixes and miscellaneous improvements into
the branch.

Per jilles' suggestion, I'm avoiding the merge of a couple of changes
(r256850 and r257506) that required depending kernel changes.  I'm also
avoiding very recent changes that have not had a long enough time to be
validated in current.

This is "make tinderbox" clean.

r256735	sh: Remove one syscall when waiting for a foreground job.
r257399	sh: Allow trapping SIGINT/SIGQUIT after ignore because of '&'.
r257504	sh: Reorder union node to reduce its size on 64-bit platforms.
r257920	sh: Add a test case for would-be assignments that are not due to quoting.
r257929	sh: Properly quote alias output from command -v.
r258489	sh: Add tests for the </dev/null implicit in a background command.
r258533	sh: Add more tests for the </dev/null implicit in a background command.
r258535	sh: Make <&0 disable the </dev/null implicit in a background command.
r258776	sh: Prefer memcpy() to strcpy() in most cases. Remove the scopy macro.
r259047	sh: Split set -x output into a separate function.
r259210	Migrate tools/regression/bin/ tests to the new layout.
r259844	sh: Remove an unused variable.
r259846	sh: Initialize OPTIND=1 even if it came from the environment.
r259874	sh: Simplify code related to PPID variable.
r259946	sh: Don't check input for non-whitespace if history is disabled.
r260246	sh(1): Discourage use of -e.
r260506	Run the sh(1) and test(1) tests as unprivileged.
r260586	Mark the bin/pax tests as requiring perl.
r260634	Use TAP_TESTS_PERL to register the legacy_test in bin/pax.
r260635	Replace hand-crafted Kyuafiles with automatic generation.
r260654	sh: Remove SIGWINCH handler and just check for resize before every read.
r261121	sh: Add test for nested alias.
r261125	sh: Solve the alias recursion problem in a less hackish way.
r261141	sh: Do not depend on parse/execute split in new alias test.
r261160	sh: Add tests for alias names after another alias.
r261192	sh: Allow aliases to force alias substitution on the following word.
r262533	sh: Make expari() static.
r262565	sh: Do not corrupt internal representation if LINENO inner expansion fails.
r262697	sh: Simplify expari().

Reviewed by:	jilles
2014-03-09 17:04:31 +00:00
daichi
b42eb5b769 MFC r262467: sh: Add -h option to SYNOPSIS
Reviewed by:	jilles
2014-02-25 03:49:42 +00:00
wblock
0b6cdba729 MFC r260782:
-h and -H options backwards in manual page.
2014-01-20 23:23:29 +00:00
trasz
62bfe594df MFC r256838:
Don't test arrays for being NULL.

Sponsored by:	The FreeBSD Foundation
2014-01-02 13:59:23 +00:00
brueffer
add016b338 MFC: r257288
Clean up a spurious "." in SEE ALSO.

Approved by:	re (glebius)
2013-11-11 14:04:26 +00:00
des
7c51c89f48 MFH (r256332): remove extraneous \n
Approved by:	re (gjb)
2013-10-11 20:14:21 +00:00
des
1fb35847da By popular demand, move freebsd-version(1) from /libexec to /bin.
Approved by:	re (gjb)
2013-10-09 20:47:20 +00:00
trasz
8dd526065c Remove useless check - ki_loginclass is an array; can't be NULL.
CID:		1006559
Approved by:	re (kib)
MFC after:	2 weeks
Sponsored by:	FreeBSD Foundation
2013-10-04 16:08:44 +00:00