ASR_BASE
Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/package/utils/busybox/patches/601-fix_termios_configuration_missing.patch b/package/utils/busybox/patches/601-fix_termios_configuration_missing.patch
new file mode 100644
index 0000000..9f2d9b6
--- /dev/null
+++ b/package/utils/busybox/patches/601-fix_termios_configuration_missing.patch
@@ -0,0 +1,27 @@
+--- a/libbb/lineedit.c
++++ b/libbb/lineedit.c
+@@ -2467,6 +2467,7 @@ int FAST_FUNC read_line_input(line_input
+ #endif
+ struct termios initial_settings;
+ struct termios new_settings;
++ struct termios tmp_settings;
+ char read_key_buffer[KEYCODE_BUFFER_SIZE];
+
+ INIT_S();
+@@ -3006,7 +3007,15 @@ int FAST_FUNC read_line_input(line_input
+ #endif
+
+ /* restore initial_settings */
+- tcsetattr_stdin_TCSANOW(&initial_settings);
++ if (tcgetattr(STDIN_FILENO, &tmp_settings) < 0){
++ tcsetattr_stdin_TCSANOW(&initial_settings);
++ }else{
++ tmp_settings.c_lflag |= (ICANON | ECHO | ECHONL | ISIG);
++ tmp_settings.c_cc[VMIN] = initial_settings.c_cc[VMIN];
++ tmp_settings.c_cc[VTIME] = initial_settings.c_cc[VTIME];
++ tcsetattr_stdin_TCSANOW(&tmp_settings);
++ }
++
+ #if ENABLE_FEATURE_EDITING_WINCH
+ /* restore SIGWINCH handler */
+ sigaction_set(SIGWINCH, &S.SIGWINCH_handler);