summaryrefslogtreecommitdiff
path: root/Src
AgeCommit message (Collapse)AuthorFilesLines
2020-02-14Clean up error-message white spacedana1-9/+21
2020-02-14Improve PRIVILEGED fixes (again)dana1-49/+43
* Pass RGID instead of passwd GID to initgroups() * Clean up #ifdefs, avoid unnecessary checks * Flatten conditions
2020-02-14Improve PRIVILEGED fixesDaniel Shahaf4-99/+275
- Fix retval handling in bin_setopt() - Don't skip_setuid / skip_setgid. It's not our place to optimize away noops (that might not even _be_ noops; they might change the saved uid…). - Remove HAVE_* guard checks around functions that are used unguarded elsewhere. - Use bsd-setres_id.c from OpenSSH to provide setresuid() / setresgid() everywhere, and thus simplify the ifdef soup. Fix some preëxisting bugs in the macro definitions of setuid() (do we still need that one?). - Fix zwarning() format codes for variadic arguments type safety - Restored a comment from HEAD - Fix failure modes around initgroups() - Compared privilege restoration code with OpenSSH's permanently_drop_uid() and updated as needed - Add E01 PRIVILEGED sanity checks
2020-02-14Drop privileges securelySam Foxman1-40/+121
2020-02-06zsh/system: Fix infinite loop in sysreadRoman Perepelitsa1-1/+1
2020-02-0245373: Fix ERR_EXIT bug in else branch of if.Peter Stephenson1-1/+1
The flags need resetting for this branch otherwise e.g. command substitution with non-zero status doesn't cause exit.
2020-01-2945343: Queue signals around arithmetic evaluationsDaniel Shahaf2-7/+11
The queueing added in execarith() in 45083 is reverted since the callee does this now.
2020-01-26unposted: internal: Add some comments and fix indentation. No functional ↵Daniel Shahaf1-2/+13
change.
2020-01-2345340: internal: Document the difference between paramtab and realparamtab.Daniel Shahaf1-1/+7
2020-01-1545302: bin_umask(): Queue signals around umask().Daniel Shahaf1-1/+4
Otherwise, a signal handler might create files while the temporary umask is in effect.
2020-01-09Fix typos reported by codespell in Src/Mikael Magnusson4-4/+4
2020-01-0945269: Fix misspellings in completions and elsewhere.Jens Schleusener15-17/+17
2020-01-0245181: Fix workers/45164: ${(S)%%} will now consider the empty string as a ↵Daniel Shahaf1-2/+2
potential match.
2019-12-3124581: Fix array assignments in shell word splitting and completion.Peter Stephenson2-1/+13
Assignments after the first were not recognised as such as without the full parser the state didn't return to command position. Fix this in bufferwords() and the completion miniparser.
2019-12-26unposted: zerrmsg(): Fix macro guard missed in previous commitdana1-2/+0
2019-12-26internal: Allow %L in zerrmsg() in non-debug builds, too.Daniel Shahaf1-2/+0
This will let error messages include long integers.
2019-12-1845083: Add signal protection to execarith().Peter Stephenson1-0/+3
Otherwise we could get re-entrancy in memory functions when setting variables.
2019-12-1845076: internal: Simplify handling of try_tryflag. No functional change.Daniel Shahaf1-6/+3
try_tryflag isn't assigned anywhere, other than at initialization and by these lines, so we don't need to save and restore the value.
2019-12-1845066: internal: Document forklevel, locallevel, and exit_pending.Daniel Shahaf3-2/+14
2019-12-1845065: Make 'make -s' print nothing when it does nothing.Daniel Shahaf1-1/+0
2019-12-1845064: Fix the mktemp() warning, in debug builds only.Daniel Shahaf1-0/+25
On Linux, linking to mktemp() generates the following warning: . utils.o: In function `gettempname': ./Src/utils.c:2229: warning: the use of `mktemp' is dangerous, better use `mkstemp' or `mkdtemp' The warning cannot be disabled. Work around that by using mkstemp() instead, and massage its output so it behaves like mktemp(). See the new comment for further details.
2019-12-1745058: internal: Add symbolic names to possible values of zexit()'s ↵Daniel Shahaf8-25/+35
"from_where" parameter. No functional change.
2019-12-17unposted: Update comment to reflect variable rename in 41012 (= ↵Daniel Shahaf1-1/+1
zsh-5.3.1-182-gd7110d8f0).
2019-12-1545025: fix re-entrancy problem with memory management in readoutput().Peter Stephenson1-25/+36
This could cause a signal received during $(...) to corrupt memory.
2019-12-1245009: POSIX_CD needs to suppress some forms of option.Peter Stephenson1-1/+1
Otherwise forms of argument allowed by POSIX are interpreted as options instead.
2019-12-1245001: Fix zero-length matches with ${...%...}Peter Stephenson1-0/+6
As the shortest match is preferred, zero-length matches beat any other.
2019-12-1145004: Fix typos in commentsMartijn Dekker20-47/+47
2019-12-1044997: GLOB_COMPLETE fix for compctl file completion.Peter Stephenson1-1/+21
Dashes could cause problems in directory prefixes.
2019-12-0444976: fixup describe-key-briefly for visual modeOliver Kiddle1-0/+4
2019-12-01unposted: zstyle: Add a unit test and some comments.Daniel Shahaf1-3/+16
2019-11-19users/24451: zgetcwd: Add a guard against returning an empty string.Daniel Shahaf1-1/+1
2019-11-18users/24445: Add :P modifier to history code.Peter Stephenson1-0/+10
This was in the glob qualifier and variable code but got missed out of the separate history modifier function.
2019-10-2844864: Avoid inifinite loop in tty init.Peter Stephenson1-2/+16
If we can't grab the terminal in interactive mode, give up after 100 goes. This is a completely arbitrary choice; we simply don't know what in the system could change the result of looping further.
2019-10-28unposted: fix indentation (whitespace-only change)romkatv1-30/+30
Indentatin in moveto was broken by 3eea35d0 (my bad), making it difficult to read. This commit reverts it to what it used ot be. While at it, fix indentation in a few other places in the same file.
2019-10-1644841: Better checking of errors from "nice"_RuRo_ (Андрей Стоцкий)1-2/+5
2019-10-10unposted: functions -c: Fix typoDaniel Shahaf1-1/+1
2019-10-04bug fix: infinite loop when tty disappearsromkatv1-1/+1
When TTY disappears and there is at least one fd watcher, raw_getbyte() can enter an infinite loop where it keeps calling poll() over and over again. To reproduce, open a terminal, start zsh and type this: rm -f /tmp/fifo mkfifo /tmp/fifo exec 3<>/tmp/fifo do-nothing() {} zle -F 3 do-nothing Then make TTY disappear. For example, kill the parent with `kill -9 $PPID` and close the terminal window if it's still there. Observe that zsh is consiming 100% CPU. Note that do-nothing() never gets called. This patch makes the poll() loop in raw_getbyte() terminate when TTY is signalling POLLHUP. This makes the behavior consistent with the case where TTY disappears while no fd watchers are installed.
2019-08-2944714: Take account of CDABLE_VARS while checking spellingJun-ichi Takimoto1-0/+2
2019-08-2844710: support RLIMIT_UMTXP on FreeBSDJun-ichi Takimoto2-0/+12
2019-08-2844709: incluce sys/capability.h only if HAVE_CAP_GET_PROC is definedJun-ichi Takimoto1-1/+1
2019-08-1444664: Fix problem with temporary assignment.Peter Stephenson1-1/+3
"foo=bar builtin" inside a function lost any variable from enclosing scope.
2019-08-03Copy functions using functions -c old new.Peter Stephenson1-2/+41
Documentation and test.
2019-08-0344635: Don't apply STAT_NOPRINT to backgrounded jobsPeter Stephenson1-1/+2
2019-08-0344637: = doesn't need quoting in awk regexp.Shlomi Fish1-1/+1
Known to cause warnings in gawk 5.
2019-07-2644582: Fix foregoing commit to use DPUTS() betterKamil Dudka1-6/+4
2019-07-2444566: make sure Zle doesn't crash if history entry not foundKamil Dudka1-2/+12
2019-07-1544509: Prevent crash with modified path / PATH combination.Peter Stephenson1-4/+12
Crash came from "fn() { typeset -U path=($path); unset PATH; }". Note PATH unset is global as only path was made local.
2019-07-0844502: Quote function name for "autoload -X"Bart Schaefer1-1/+1
2019-07-0244480: Don't automatically close externally visible file descroptors.Peter Stephenson2-3/+6
These are descriptors marked FDT_EXTERNAL. Make all sysopen'ed file descriptors FDT_EXTERNAL. Make =(...) call closem() consistent with other substitutions. Document file descriptors are left open.
2019-07-0144469: correct error on missing option argumentMartijn Dekker1-5/+12