diff options
Diffstat (limited to 'shell/ash.c')
-rw-r--r-- | shell/ash.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/shell/ash.c b/shell/ash.c index b20c32b89..153bcc057 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -12803,6 +12803,10 @@ readcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) } } + /* "read -s" needs to save/restore termios, can't allow ^C + * to jump out of it. + */ + INT_OFF; r = shell_builtin_read(setvar2, argptr, bltinlookup("IFS"), /* can be NULL */ @@ -12812,6 +12816,7 @@ readcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) opt_t, opt_u ); + INT_ON; if ((uintptr_t)r > 1) ash_msg_and_raise_error(r); |