1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-11-01 18:30:55 +01:00
Commit graph

3995 commits

Author SHA1 Message Date
dana
26d02efa7a Improve PRIVILEGED fixes (again)
* Pass RGID instead of passwd GID to initgroups()

* Clean up #ifdefs, avoid unnecessary checks

* Flatten conditions
2020-02-14 16:06:57 -06:00
Daniel Shahaf
8250c5c168 Improve PRIVILEGED fixes
- 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-14 16:06:57 -06:00
Sam Foxman
24e993db62 Drop privileges securely 2020-02-14 16:06:57 -06:00
Roman Perepelitsa
754fdc6580 zsh/system: Fix infinite loop in sysread 2020-02-06 13:42:32 -06:00
Peter Stephenson
e01223a26c 45373: Fix ERR_EXIT bug in else branch of if.
The flags need resetting for this branch otherwise e.g. command
substitution with non-zero status doesn't cause exit.
2020-02-02 18:05:47 +00:00
Daniel Shahaf
581585dfc6 45343: Queue signals around arithmetic evaluations
The queueing added in execarith() in 45083 is reverted since the callee
does this now.
2020-01-29 09:02:49 +00:00
Daniel Shahaf
3511169731 unposted: internal: Add some comments and fix indentation. No functional change. 2020-01-26 03:46:00 +00:00
Daniel Shahaf
5e843a3721 45340: internal: Document the difference between paramtab and realparamtab. 2020-01-23 03:21:36 +00:00
Daniel Shahaf
7ca2b06501 45304: Do execute the always block even when the try/always block itself is the last command.
Fixes the test added in the previous commit (workers/45305).
2020-01-16 18:29:13 +00:00
Daniel Shahaf
edc04bd946 45291: A glob with a trailing slash will now match unreadable/unexecutable directories. 2020-01-15 19:20:33 -06:00
Daniel Shahaf
e899c21863 Merge remote-tracking branch 'origin/master' into 5.9
Right now, as we're preparing to tag the 5.8 release, the 5.9 branch is
maintained as a topic branch off master.

* origin/master:
  45287: zshexpn: Describe parameter elision and add some introductory prose
  45302: bin_umask(): Queue signals around umask().
  users/24656: docs: Add an example of setting and querying zstyles
  users/24659: Cross-ref doc for matchers.
  45296: D02glob: Clean up after test from users/24633
  45290: New helper script for listing XFail tests.
  users/24633: Add an xfail test for users/24619.
  unposted: additional typo fix
  45280: _git: add -local variants
  users/24628 (fixed): More doc for selectw-word-style widgets.
  45266: Fix losetup completion, broken in da085b7a20 (41720).
  unposted: Fix punctuation.
  use /dev/fd on Cygwin for process substitution
  unposted: Two additional typo fixes.
  Fix typos reported by codespell in shell code
  Fix typos reported by codespell in Src/
  45269: Fix misspellings in completions and elsewhere.
  45261: _gcc: Detect clang-as-gcc
  unposted: internal: Remove Vim modeline that interferes with ztst.vim.
  unposted: internal: ztst.vim: Use :syn-sync to work around (#x) and "`\\\\\\\\`" confusing the highlighting.
  unposted: internal: zyodl.vim: Support glob qualifiers in example()'s
  unposted: internal: zyodl.vim: Support yodl comments.
  github #44: Allow completion for picocom to list symlinks to character devices
  45245: _gcc: add some clang specific warnings
  45231: _rsync: When completing remote modules, ignore more of the motd.
  unposted: _tac: Eliminate superfluous variable
  45226: _man: Improve completion of file paths
  45184: Clarify documentation of %-sequences understood by compadd -[Xx]
  45239: Remove 'appendhistory' from zsh-newuser-install
  45218: add more options to swaks completion
  45196: fix completion after make -C, allowing for -C being used multiple times
  unposted (after 45183): Fix yodl error: "contrib.yo:4457: No macro: back(...)".
  45181: Fix workers/45164: ${(S)%%} will now consider the empty string as a potential match.
  45183: Improve documentation examples
  unposted: Add some tests for ${(S)}, including a regression test for workers/45164.
  45169/0002 (tweaked for trailing newlines): Add an expected-to-fail test for workers/44007.
  45169/0001: In the test suite, allow test cases to be marked as expected to fail.
  users/24582 + users/24583: Add regression tests for the previous commit.
  24581: Fix array assignments in shell word splitting and completion.
  45160: zshexpn: Expand documentation of (S)
  45150 + 45152: zshexpn: Use a more minimal example in the documentation of (#b).
  unposted: internal: Vim ztst support: Add an ftplugin in addition to the syntax highlighter.
  45130: _multi_parts: Always pass -f to compadd if given by caller
  unposted: zerrmsg(): Fix macro guard missed in previous commit
  unposted: ChangeLog for last commit
  internal: Allow %L in zerrmsg() in non-debug builds, too.
2020-01-15 22:49:09 +00:00
Daniel Shahaf
faa476a4ed 45302: bin_umask(): Queue signals around umask().
Otherwise, a signal handler might create files while the temporary umask
is in effect.
2020-01-15 19:49:45 +00:00
Mikael Magnusson
e6fa0b3b65 Fix typos reported by codespell in Src/ 2020-01-09 14:49:55 +01:00
Jens Schleusener
11dbe4c286 45269: Fix misspellings in completions and elsewhere. 2020-01-09 13:42:02 +00:00
Daniel Shahaf
b591d43113 45181: Fix workers/45164: ${(S)%%} will now consider the empty string as a potential match. 2020-01-02 16:00:11 +00:00
Peter Stephenson
c557cee1a6 24581: Fix array assignments in shell word splitting and completion.
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-31 18:35:06 +00:00
dana
ed21a7b700 unposted: zerrmsg(): Fix macro guard missed in previous commit 2019-12-26 14:57:07 -06:00
Daniel Shahaf
81185f4c61 internal: Allow %L in zerrmsg() in non-debug builds, too.
This will let error messages include long integers.
2019-12-26 11:49:45 +00:00
Daniel Shahaf
525faae549 45137: zformat: Allow the specifying minimum width and a dot with an empty maximum width.
Before this commit, format specs such as '%5.s' would be printed
literally.  Now, they are treated as equivalent to '%5s'.

The '.' character is not allowed to be used in specs, so there is no
incompatibility.
2019-12-26 04:21:47 +00:00
Daniel Shahaf
8e0253af02 45138: Add zformat unit tests. 2019-12-26 04:20:24 +00:00
Daniel Shahaf
ca6f4466e6 45131: Make a function that redefines itself preserve its tracedness.
This makes it easy to apply local tracing ('functions -T') to autoloadable
functions that redefines themselves when first loaded.
2019-12-26 04:20:10 +00:00
Peter Stephenson
fd068221b7 45083: Add signal protection to execarith().
Otherwise we could get re-entrancy in memory functions when
setting variables.
2019-12-18 10:51:59 +00:00
Daniel Shahaf
a90e93f454 45076: internal: Simplify handling of try_tryflag. No functional change.
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-18 06:01:55 +00:00
Daniel Shahaf
ae7e291873 45066: internal: Document forklevel, locallevel, and exit_pending. 2019-12-18 06:01:50 +00:00
Daniel Shahaf
a370f24137 45065: Make 'make -s' print nothing when it does nothing. 2019-12-18 06:01:49 +00:00
Daniel Shahaf
3c4b3c8798 45064: Fix the mktemp() warning, in debug builds only.
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-18 06:01:47 +00:00
Daniel Shahaf
8bc4400762 45058: internal: Add symbolic names to possible values of zexit()'s "from_where" parameter. No functional change. 2019-12-17 05:12:36 +00:00
Daniel Shahaf
06c2a625b3 unposted: Update comment to reflect variable rename in 41012 (= zsh-5.3.1-182-gd7110d8f0). 2019-12-17 02:46:32 +00:00
Peter Stephenson
1baf0d1f55 45025: fix re-entrancy problem with memory management in readoutput().
This could cause a signal received during $(...) to corrupt memory.
2019-12-15 19:04:04 +00:00
Peter Stephenson
cb4dc95643 45009: POSIX_CD needs to suppress some forms of option.
Otherwise forms of argument allowed by POSIX are interpreted as
options instead.
2019-12-12 10:47:00 +00:00
Peter Stephenson
273d669a56 45001: Fix zero-length matches with ${...%...}
As the shortest match is preferred, zero-length matches beat any other.
2019-12-12 10:23:47 +00:00
Martijn Dekker
c578f0a08b 45004: Fix typos in comments 2019-12-11 02:37:39 +00:00
Peter Stephenson
ae58388619 44997: GLOB_COMPLETE fix for compctl file completion.
Dashes could cause problems in directory prefixes.
2019-12-10 10:32:48 +00:00
Oliver Kiddle
06e27e940a 44976: fixup describe-key-briefly for visual mode 2019-12-04 22:55:52 +01:00
Daniel Shahaf
2acbae3bad unposted: zstyle: Add a unit test and some comments. 2019-12-01 04:00:17 +00:00
Daniel Shahaf
87db974a84 users/24451: zgetcwd: Add a guard against returning an empty string. 2019-11-19 19:20:38 +00:00
Peter Stephenson
88d14451b0 users/24445: Add :P modifier to history code.
This was in the glob qualifier and variable code but got missed out
of the separate history modifier function.
2019-11-18 15:26:17 +00:00
Peter Stephenson
8c25d92e11 44864: Avoid inifinite loop in tty init.
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-28 11:56:19 +00:00
romkatv
6c6200520a unposted: fix indentation (whitespace-only change)
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-28 12:00:55 +01:00
_RuRo_ (Андрей Стоцкий)
59901e61cb 44841: Better checking of errors from "nice" 2019-10-16 17:41:41 +01:00
Daniel Shahaf
72c6dbe1be unposted: functions -c: Fix typo 2019-10-10 03:45:02 +00:00
romkatv
243e46998e bug fix: infinite loop when tty disappears
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-10-04 14:18:18 +02:00
Jun-ichi Takimoto
a98e13ed1f 44714: Take account of CDABLE_VARS while checking spelling 2019-08-29 18:21:50 +09:00
Jun-ichi Takimoto
b82c24801f 44710: support RLIMIT_UMTXP on FreeBSD 2019-08-28 10:02:29 +09:00
Jun-ichi Takimoto
3da3fe770a 44709: incluce sys/capability.h only if HAVE_CAP_GET_PROC is defined 2019-08-28 09:39:13 +09:00
Peter Stephenson
d946f22a4c 44664: Fix problem with temporary assignment.
"foo=bar builtin" inside a function lost any variable from
enclosing scope.
2019-08-14 15:16:59 +01:00
Peter Stephenson
4fae525726 Copy functions using functions -c old new.
Documentation and test.
2019-08-03 19:53:51 +01:00
Peter Stephenson
e0d063a2ad 44635: Don't apply STAT_NOPRINT to backgrounded jobs 2019-08-03 19:48:18 +01:00
Shlomi Fish
90fa6ee042 44637: = doesn't need quoting in awk regexp.
Known to cause warnings in gawk 5.
2019-08-03 10:57:02 +01:00
Kamil Dudka
d6a9e222ec 44582: Fix foregoing commit to use DPUTS() better 2019-07-26 16:36:14 +01:00