ash: fix "read -s" + ^C. Closes 5504
No binary (build failed)
—
(log yok)
| @@ -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); | |
| @@ -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) { | |