[PATCH 3/8] console: fix a bug in interactive readline usage
Vladislav Shpilevoy
v.shpilevoy at tarantool.org
Mon Apr 16 21:39:13 MSK 2018
Spurious wakeups are possible in console, that makes readline
think that there are some data on stdin. Waked up readline
returns garbage instead of string, that crashes a server on
assertion in Lua.
Closes #3343
---
src/box/lua/console.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/box/lua/console.c b/src/box/lua/console.c
index d27d7ecac..7a5ac5550 100644
--- a/src/box/lua/console.c
+++ b/src/box/lua/console.c
@@ -221,8 +221,9 @@ lbox_console_readline(struct lua_State *L)
*/
rl_callback_handler_install(prompt, console_push_line);
top = lua_gettop(L);
- while (top == lua_gettop(L) &&
- coio_wait(STDIN_FILENO, COIO_READ, TIMEOUT_INFINITY)) {
+ while (top == lua_gettop(L)) {
+ while (coio_wait(STDIN_FILENO, COIO_READ,
+ TIMEOUT_INFINITY) == 0);
rl_callback_read_char();
}
--
2.15.1 (Apple Git-101)
More information about the Tarantool-patches
mailing list