ash: fix "read -s" + ^C. Closes 5504
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
50157f3dec
commit
9e71e3cea5
@ -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,
|
r = shell_builtin_read(setvar2,
|
||||||
argptr,
|
argptr,
|
||||||
bltinlookup("IFS"), /* can be NULL */
|
bltinlookup("IFS"), /* can be NULL */
|
||||||
@ -12812,6 +12816,7 @@ readcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
|
|||||||
opt_t,
|
opt_t,
|
||||||
opt_u
|
opt_u
|
||||||
);
|
);
|
||||||
|
INT_ON;
|
||||||
|
|
||||||
if ((uintptr_t)r > 1)
|
if ((uintptr_t)r > 1)
|
||||||
ash_msg_and_raise_error(r);
|
ash_msg_and_raise_error(r);
|
||||||
|
@ -170,7 +170,7 @@ shell_builtin_read(void FAST_FUNC (*setvar)(const char *name, const char *val),
|
|||||||
int timeout;
|
int timeout;
|
||||||
|
|
||||||
if ((bufpos & 0xff) == 0)
|
if ((bufpos & 0xff) == 0)
|
||||||
buffer = xrealloc(buffer, bufpos + 0x100);
|
buffer = xrealloc(buffer, bufpos + 0x101);
|
||||||
|
|
||||||
timeout = -1;
|
timeout = -1;
|
||||||
if (end_ms) {
|
if (end_ms) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user