summaryrefslogtreecommitdiffstats
path: root/bin
Commit message (Collapse)AuthorAgeFilesLines
* MFC r289488:ngie2015-10-261-9/+9
| | | | Clean up trailing whitespace
* MFC r288330,r288423,r288678,r288905,r288906,r288907,r289102:ngie2015-10-253-0/+979
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r288330: Add initial testcases for bin/ls Sponsored by: EMC / Isilon Storage Division r288423: Skip the B_flag testcase to stop blowing up freebsd-current@ with "test failure emails" because kyua report-jenkins doesn't properly escape non-printable chars r288678: Merge additional testcases and improvements to bin/ls/ls_tests from ^/user/ngie/more-tests. - Additional testcases added: -- ls -D -- ls -F -- ls -H -- ls -L -- ls -R -- ls -S -- ls -T -- ls -b -- ls -d -- ls -f -- ls -g -- ls -h -- ls -i -- ls -k -- ls -l -- ls -m -- ls -n -- ls -o -- ls -p -- ls -q/ls -w -- ls -r -- ls -s -- ls -t -- ls -u -- ls -y - Socket file creation is limited to the ls -F testcase, greatly speeding up the test process - The ls -C testcase was made more robust by limiting the number of columns via COLUMNS and by dynamically formulating the columns/lines. - Add `atf_test_case` before all testcase `head` functions. Sponsored by: EMC / Isilon Storage Division r288905: Add some more syncs to quiesce the filesystem after creating the files to see if this fixes deterministic Jenkin failures r288906: Explicitly set BLOCKSIZE to 512 in the environment r288907: Call sync consistently using atf_check Remove superfluous sync's r289102: Remove all of the syncs They're unnecessary as shown by further testing on my VM Requested by: jhb
* MFC r288430: wordexp: Rewrite to make WRDE_NOCMD reliable.jilles2015-10-254-0/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Shell syntax is too complicated to detect command substitution and unquoted operators reliably without implementing much of sh's parser. Therefore, have sh do this detection. While changing sh's support anyway, also read input from a pipe instead of arguments to avoid {ARG_MAX} limits and improve privacy, and output count and length using 16 instead of 8 digits. The basic concept is: execl("/bin/sh", "sh", "-c", "freebsd_wordexp ${1:+\"$1\"} -f "$2", "", flags & WRDE_NOCMD ? "-p" : "", <pipe with words>); The WRDE_BADCHAR error is still implemented in libc. POSIX requires us to fail strings containing unquoted braces with code WRDE_BADCHAR. Since this is normally not a syntax error in sh, there is still a need for checking code in libc, we_check(). The new we_check() is an optimistic check that all the characters <newline> | & ; < > ( ) { } are quoted. To avoid duplicating too much sh logic, such characters are permitted when quoting characters are seen, even if the quoting characters may themselves be quoted. This code reports all WRDE_BADCHAR errors; bad characters that get past it and are a syntax error in sh return WRDE_SYNTAX. Although many implementations of WRDE_NOCMD erroneously allow some command substitutions (and ours even documented this), there appears to be code that relies on its security (codesearch.debian.net shows quite a few uses). Passing untrusted data to wordexp() still exposes a denial of service possibility and a fairly large attack surface. This is also a MFC of r286830 to reduce conflicts. I changed the code somewhat to avoid changes from r286941; in particular, WRDE_BADVAL can still only be returned if WRDE_UNDEF was passed. Relnotes: yes Security: fixes command execution with wordexp(untrusted, WRDE_NOCMD)
* MFC r287237: Respect locale settings.delphij2015-09-141-0/+3
|
* MFC r287236:delphij2015-09-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use exit() instead of return in main(). The difference in practice is subtle: C standard requires the language runtime to make return of int from main() behave like calling exit(), and in FreeBSD we do: exit(main(argc, argv, env)) In lib/csu/${ARCH}/crt1.c, so the real difference is using exit() explicitly would use an additional stack frame. Note however, if there is a on stack pointer is the last reference of an allocated memory block, returning from the function would, technically, result in a memory leak because we lost the last reference to the memory block, and calling exit() from C runtime could potentionally overwrite that stack frame that used to belong to the main() function. In practice, this is normally Okay because eventually the kernel would tear down the whole address space that belongs to the process in the _exit(2) system call, but the difference could confuse compilers (which may want to do stack overflow checks) and static analyzers. Replacing return with exit() in main() allows compilers/static analyzers to correctly omit or generate the right warnings when they do not treat main() specifically. With the current version of clang on FreeBSD/amd64, use of exit() would result in slightly smaller code being generated and eliminated a false positive warning of memory leak.
* MFC r268436,273243,278806,280920,286971: sh: Add various tests.jilles2015-09-1312-0/+65
| | | | These new tests from head pass with unmodified stable/10 sh.
* MFC r287148: sh: Fix out of bounds read when there is no ] after a [:class:].jilles2015-09-133-12/+17
| | | | | | | | | The initial check for a matching ] was incorrect if a ] may be consumed by a [:class:]. The subsequent loop assumed that there must be a ]. Remove the initial check and make the loop cope with a missing ]. Found with afl-fuzz.
* MFC r278826,279330: sh: Various cleanups to expand.c:jilles2015-09-131-60/+55
| | | | | | | | * Remove some gotos. * Remove unused parameter. * Remove duplicate code. This MFC is to avoid conflicts in the MFC of r287148.
* MFC r272575: sh: Eliminate some gotos.jilles2015-09-135-56/+43
| | | | This MFC is to avoid conflicts in the MFC of r287148.
* MFC r287081: sh: Don't create bad parse result when postponing a badjilles2015-09-134-2/+13
| | | | | | | | | | | | | | substitution error. An invalid substitution like ${var@} does not cause a parse error but is stored in the intermediate representation, to be written as part of the error message. If there is a CTL* byte in the stored part, this confuses some code such as the code to skip an unused alternative such as in ${var-alternative}. To keep things simple, do not store CTL* bytes. Found with afl-fuzz.
* MFC r287012:jamie2015-08-295-21/+78
| | | | | | | Make pkill/pgrep -j ARG take jname, not just jid. PR: 201588 Submitted by: Daniel Shahaf <danielsh at apache.org>
* MFC r284916: mv: Improve message when moving two or more files tojilles2015-08-221-1/+1
| | | | | | | | | | | non-directory. The message text is from cp, which has had a nicer message for this since 2007 (PR bin/50656). As with cp, the exit status changes from 64 to 1. PR: 201083
* MFC r284779: sh: Fix some arithmetic undefined behaviour.jilles2015-08-152-4/+3
| | | | | Fix shifts of possibly negative numbers found with ubsan and avoid signed integer overflow when hashing an extremely long command name.
* MFH (r277531): don't include newvers in freebsd-versiondes2015-07-021-1/+1
|
* MFH (r275659): fix dependency on newvers.shdes2015-06-301-2/+1
|
* MFC r283257:delphij2015-06-0512-17/+1
| | | | Eliminate unneeded includes.
* MFC r282208:smh2015-06-014-80/+90
| | | | | | | Standardise chmod, chflags, chown and chgrp recursive symlink processing Relnotes: Yes Sponsored by: Multiplay
* Merge: 278618 278633 278636 278653 278742 278776 279121rodrigc2015-05-232-142/+128
| | | | | | Multiple fixes for pgrep and pkill tests. PR: 19109
* MFC r282608:delphij2015-05-212-4/+13
| | | | | | | | 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).
* MFC r282482: cp: Remove fts sorting.jilles2015-05-141-28/+1
| | | | | | | | | | | | | | | | | | | | | 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)
* MFC r275805:tijl2015-04-302-2/+2
| | | | | | | | | | | | | 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
* MFC r280206:eadler2015-04-174-11/+19
| | | | | | | | | 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
* MFC r280357:dim2015-04-061-0/+3
| | | | | | | Build expr with -fwrapv, since it relies on signed integer wrapping having defined behavior. Reported by: rodrigc
* MFC r278848: symlink(7): Mention chflagsat() (can take AT_SYMLINK_NOFOLLOW).jilles2015-03-101-1/+2
|
* MFC r276359: symlink(7): Note that stat(1) does not follow symlinks byjilles2015-02-081-9/+8
| | | | default.
* MFC r277358:ngie2015-01-262-0/+22
| | | | | | | | r277358 (by ngie): Integrate contrib/netbsd-tests/bin/expr into the build/kyua as bin/expr/tests Sponsored by: EMC / Isilon Storage Division
* MFC r274254: sh(1): Mention portability issue with shifting zero positionaljilles2015-01-041-2/+3
| | | | | | | | 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).
* MFC r271936: sh(1): Clarify that assignments before commands do not affectjilles2015-01-041-2/+3
| | | | | | expansions. PR: 193759
* MFC r272777,r272779,r272780,r272781,r272782,r272783,r272784,r272787,r272788:ngie2015-01-012-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* MFC r276037: sh: Remove EXP_REDIR.jilles2014-12-293-15/+8
| | | | | | | | 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.
* MFC r274854: sh: Use DQSYNTAX only while expanding, not SQSYNTAX.jilles2014-12-291-1/+1
| | | | | Quoting during expansion only cares about CCTL, which is the same for DQSYNTAX and SQSYNTAX.
* MFC r273920: sh: Fix corruption of CTL* bytes in positional parameters injilles2014-12-293-1/+28
| | | | | | | 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.
* MFC r275745:kib2014-12-271-1/+2
| | | | | | | | | | Add facility to stop all userspace processes. MFC r275753: Fix gcc build. MFC r275820: Add missed break.
* MFC r268576: sh: Correctly handle positional parameters beyond INT_MAX onjilles2014-12-143-2/+19
| | | | | | | | | | | | | | | | | 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
* MFC r272305rodrigc2014-10-052-53/+106
| | | | Fix pkill unit test.
* MFC r268376 (imp):gjb2014-10-011-1/+1
| | | | | | | | | | | | | | | | | | 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
* MFC r269903:ngie2014-08-293-92/+93
| | | | | | | | | | 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
* MFC r270256:pfg2014-08-281-1/+1
| | | | | | Always check the limits of array index variables before using them. Obtained from: DragonFlyBSD
* MFC r269656:kib2014-08-211-2/+1
| | | | | | | | | | 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.
* MFC r268429: Don't install locale1.0 if MK_NLS == no.jilles2014-08-201-0/+2
| | | | | | | | | | | 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
* MFC r269977asomers2014-08-181-0/+2
| | | | | | | | 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.
* MFC r267196:pluknet2014-06-262-1/+15
| | | | Add support for inspecting process flags set in p_flag2.
* MFC rev. 265593:thomas2014-05-211-24/+43
| | | | | | | | | (dd_out): Fix handling of all-zeroes block at end of input with conv=sparse. PR: bin/189174 PR: bin/189284 Reviewed by: kib
* MFC r265229,r265239:bdrewery2014-05-173-7/+62
| | | | Add -J to filter by matching jail IDs and names.
* date(1): Add "-R" flag to use RFC 2822 date and time output format [MFC]dumbbell2014-05-032-7/+33
| | | | | | | | | 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.
* MFC various moves of tools/regressions/ tests to the new infrastructure.jmmv2014-04-2730-0/+1053
| | | | | | | | | | | | | | | | - 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.
* MFC r264059+264067:delphij2014-04-174-32/+67
| | | | | | | | | | | | 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
* MFC r263847: sh: Fix memory leak with an assignment before a regular builtinjilles2014-04-151-2/+8
|
* MFC r263846: sh: Fix memory leak when trying to set a read only variable.jilles2014-04-151-1/+4
|
* MFC refactoring of the *.test.mk files.jmmv2014-04-145-5/+5
| | | | | | | | | - 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.
OpenPOWER on IntegriCloud