ash: fix "read -s" + ^C. Closes 5504

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2012-09-06 13:28:10 +02:00
parent 50157f3dec
commit 9e71e3cea5
2 changed files with 6 additions and 1 deletions

View File

@ -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);

View File

@ -170,7 +170,7 @@ shell_builtin_read(void FAST_FUNC (*setvar)(const char *name, const char *val),
int timeout;
if ((bufpos & 0xff) == 0)
buffer = xrealloc(buffer, bufpos + 0x100);
buffer = xrealloc(buffer, bufpos + 0x101);
timeout = -1;
if (end_ms) {