| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
understand which code paths aren't possible.
This commit eliminates 117 false positive bug reports of the form
"allocate memory; error out if pointer is NULL; use pointer".
|
|
|
|
|
|
|
| |
segmentation fault when the argument expands to an empty string.
Reported by: simon
MFC after: 3 weeks
|
|
|
|
| |
hashalias()
|
| |
|
|
|
|
|
|
| |
needs to enlarge the buffer, we must not keep a pointer to the beginning.
PR: ports/123879
|
|
|
|
|
|
|
|
|
| |
Portability Utilities" option.
Often configure scripts generated by the autotools test if $LINENO works and
refuse to use /bin/sh if not.
Package test run by: pav
|
|
|
|
| |
Reported by: Jaakko Heinonen
|
|
|
|
|
|
|
|
|
|
|
| |
to type int.
- Change the type used for arithmetic expansion to intmax_t (ie. 64 bit on all
currently supported FreeBSD architectures). SUSv3 requires at least type
long but allows for larger types. Other shells (eg. bash, zsh, NetBSD's sh)
do that too.
PR: 122659
Submitted by: Jaakko Heinonen (minor modifications by me)
|
|
|
|
|
|
|
|
| |
are used to modify the arguments. Not doing so caused random memory reads or
null pointer dereferences when 'getopts' was called again later (SUSv3 says
getopts produces unspecified results in this case).
PR: 48318
|
|
|
|
|
|
|
|
|
|
| |
computes the new path and the second one, updatepwd(), updates the variables
PWD, OLDPWD and the path used for the pwd builtin according to the new
directory. For a logical directory change, chdir() is now called between
those two functions, no longer causing wrong values to be stored in PWD etc. if
it fails.
PR: 64990, 101316, 120571
|
|
|
|
|
|
|
| |
on platforms with unsigned chars. The comparison in question is there to
determine whether chars are unsigned or not and is based on comparing a
char, initialized to -1, for less than 0. Change the comparison to check
for geater than 0 instead...
|
| |
|
|
|
|
| |
possibly being clobbered by a longjmp or a fork with gcc4.
|
|
|
|
|
|
|
|
| |
is supposed to be 0, not the status of the previous command.
Reported by: Eygene Ryabinkin
PR: 116559
Approved by: re (gnn)
|
|
|
|
|
|
|
|
| |
from environ; make a copy before manipulating it and passing it to
setenv().
Approved by: wes
Approved by: re (kensmith)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
setenv(3) by tracking the size of the memory allocated instead of using
strlen() on the current value.
Convert all calls to POSIX from historic BSD API:
- unsetenv returns an int.
- putenv takes a char * instead of const char *.
- putenv no longer makes a copy of the input string.
- errno is set appropriately for POSIX. Exceptions involve bad environ
variable and internal initialization code. These both set errno to
EFAULT.
Several patches to base utilities to handle the POSIX changes from
Andrey Chernov's previous commit. A few I re-wrote to use setenv()
instead of putenv().
New regression module for tools/regression/environ to test these
functions. It also can be used to test the performance.
Bump __FreeBSD_version to 700050 due to API change.
PR: kern/99826
Approved by: wes
Approved by: re (kensmith)
|
|
|
|
|
|
|
|
|
| |
Not because I admit they are technically wrong and not because of bug
reports (I receive nothing). But because I surprisingly meets so
strong opposition and resistance so lost any desire to continue that.
Anyone who interested in POSIX can dig out what changes and how
through cvs diffs.
|
|
|
|
| |
just use savestr()
|
|
|
|
|
|
|
| |
1) Under POSIX unsetenv("foo=bar") is explicit error and not equal
to unsetenv("foo")
2) Prepare for upcomig POSIXed putenv() rewrite: make putenv() calls
portable and conforming to standard.
|
|
|
|
|
|
| |
test builtin.
Submitted by: Martin Kammerhofer
|
|
|
|
|
|
|
|
|
|
| |
either -v or -V) if a file with a slash in the name doesn't exist (if there is
no slash we already did that).
Additionally, suppress the error message for command -v for files with a slash.
PR: 107674
Submitted by: Martin Kammerhofer
|
|
|
|
|
|
| |
Obtained from: NetBSD (expand.c 1.58 and 1.59)
Submitted by: Paul Jarc
PR: 56147
|
|
|
|
|
|
|
|
|
|
|
| |
issue a syntax error immediately but save the information that it is erroneous
for later when the parameter expansion is actually done. This means eg. "false
&& ${}" will not generate an error which seems to be required by POSIX.
Include the invalid parameter expansion in the error message (sometimes
abbreviated with ... because recovering it would require a lot of code).
PR: 105078
Submitted by: emaste
|
|
|
|
|
|
|
|
| |
process leader for each job. Now the last specified option for the output
format (-l, -p or -s) wins, previously -s trumped -l.
PR: 99926
Submitted by: Ed Schouten and novel (patches modified by me)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This change affects documentation and comments only,
no real code involved.
PR: misc/101245
Submitted by: Darren Pilgrim <darren pilgrim bitfreak org>
Tested by: md5(1)
MFC after: 1 week
|
|
|
|
|
|
|
| |
when reading a word spanning multiple lines.
PR: bin/101094
MFC after: 5 days
|
|
|
|
|
|
| |
Acknowledge Kenneth Almquist's contribution in AUTHORS.
MFC after: 5 days
|
|
|
|
| |
MFC after: 3 days
|
|
|
|
| |
MFC after: 3 days
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Utilities option. Its value is printed at the beginning of the line if tracing
(-x) is active. PS4 defaults to the string "+ " which is compatible with the
old behaviour to always print "+ ".
We still need to expand variables in PS1, PS2 and PS4.
PR: 46441 (part of)
Submitted by: schweikh
Obtained from: NetBSD
|
|
|
|
|
|
|
|
|
|
| |
.//dir as /dir. Rather strip it only for the purpose of checking if the
directory path should be printed.
PR: 88813
Submitted by: Josh Elsasser
Patch from: NetBSD (cd.c rev 1.38)
MFC after: 2 weeks
|
|
|
|
|
|
| |
sorted. Sort the variables before printing.
PR: 96415
|
|
|
|
|
|
|
|
|
| |
own buffer. Interactively typing in long lines (>1023 characters)
previously overflowed the buffer. Unlike the NetBSD people I don't see the
need to subtract 8 from BUFSIZ, so I just used BUFSIZ-1.
Obtained from: NetBSD
PR: 91110
|
| |
|
| |
|
|
|
|
|
|
| |
I would have chosen the EOF markers, but they are no longer available
AFAICS, so output "<<HERE" and "<<XHERE" instead.
(NOTE: These changes only affect DEBUG output.)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
demanded by POSIX.
- A redirection error is only fatal (meaning the execution of a shell script is
terminated) for special built-ins. Previously it was fatal for all shell
builtins, causing problems like the one reported in PR 88845.
- Variable assignments remain in effect for special built-ins.
- Option or operand errors are only fatal for special built-ins.
This change also makes errors from 'fc' non-fatal (I could not find any reasons
for this behaviour).
Somewhat independently from the above down-grade the error handling in the
shift built-in if the operand is bigger than $# from an error() call (which is
now fatal) to a return 1. I'm not sure if this should be considered a POSIX
"operand error", however this change is needed for now as we trigger that error
while building libncurses. Comparing with other shells, zsh does the same as
our sh before this change (write a diagnostic, return 1), bash behaves as our
sh after this commit (no diagnostic, return 1) and ksh93 and NetBSD's sh treat
it as a fatal error.
|
|
|
|
|
|
|
| |
is just ". file" according to POSIX, however many other shells allow
arguments to be passed after the file. For compatibility (we even use that
feature in buildworld) additional arguments are not considered to be an
error, even though this shell does not do anything with the arguments at all.
|
|
|
|
|
|
|
|
| |
new member to struct builtincmd and set it to 1 if -s was specified. This
is done because there are cases where special builtins must be treated
differently from other builtins.
Obtained from: NetBSD (builtins.def part)
|
|
|
|
|
|
| |
environment or set it only when changing directories with cd).
PR: standards/92640
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
PR: 85103
Submitted by: garys
Obtained from: pdksh manual
Patch from: Daniel Gerzo (with changes by me)
|
|
|
|
|
|
|
|
|
|
|
|
| |
automatically it is possible wait4(2) returns -1 and sets
errno = ECHILD if there were forked children. A user can
set such signal handler e.g. via ``trap "" 20'', see a PR
for the test case. Deal with this case and mark a job as
JOBDONE.
PR: bin/90334
Submitted by: bde
MFC after: 4 weeks
|
|
|
|
|
|
|
|
| |
dash.
- Discourage the omission of the action.
PR: 70985 [1]
Submitted by: Martin Kammerhofer
|
|
|
|
|
|
|
| |
This makes a difference for the trap builtin, where after "trap '' 0" we
printed "trap -- quit". This is wrong, because an empty action means to reset
the action to the default. A side effect of this commit is that empty
variables are now printed as "variable=''" instead of just "variable=".
|
|
|
|
|
| |
PR: 74043
Submitted by: Jilles Tjoelker
|