diff options
author | Peter Stephenson <p.stephenson@samsung.com> | 2021-05-15 13:59:17 -0700 |
---|---|---|
committer | Bart Schaefer <schaefer@ipost.com> | 2021-05-15 13:59:17 -0700 |
commit | db3614900602b51edd79ae8c1308b8665de9f913 (patch) | |
tree | 0cdc7c8235fb7edb289bc651f28d29171c3d68a2 | |
parent | e4bd6dc8182d7aa1c28058450db08e0a4dd41e90 (diff) | |
download | zsh-db3614900602b51edd79ae8c1308b8665de9f913.tar.gz zsh-db3614900602b51edd79ae8c1308b8665de9f913.tar.xz zsh-db3614900602b51edd79ae8c1308b8665de9f913.zip |
users/26742: break out of surrounding shell loops when exit is called from an exit hook
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | Src/builtin.c | 5 |
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index 38f18a4b9..8e241fa6a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2021-05-15 Bart Schaefer <schaefer@zsh.org> + * Peter Stephenson: users/26742: Src/builtin.c: break out of + surrounding shell loops when "exit" is called from an exit hook + * users/26736: Src/Zle/zle_main.c: avoid infinite loop in getbyte when read -q is called from exit hook diff --git a/Src/builtin.c b/Src/builtin.c index b7ceefd55..a29eb49e4 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -5828,8 +5828,11 @@ zexit(int val, enum zexit_t from_where) * a later value always overrides an earlier. */ exit_val = val; - if (shell_exiting == -1) + if (shell_exiting == -1) { + retflag = 1; + breaks = loops; return; + } if (isset(MONITOR) && !stopmsg && from_where != ZEXIT_SIGNAL) { scanjobs(); /* check if jobs need printing */ |