BUG/MEDIUM: lua: undetected infinite loop
If the Lua code causes an infinite loop without yield possible, the
clock is not updated. This patch check the clock when the Lua control
code cannot yield.
diff --git a/src/hlua.c b/src/hlua.c
index c76eb1e..7e416f2 100644
--- a/src/hlua.c
+++ b/src/hlua.c
@@ -856,7 +856,8 @@
if (lua_isyieldable(L))
WILL_LJMP(hlua_yieldk(L, 0, 0, NULL, TICK_ETERNITY, HLUA_CTRLYIELD));
- /* If we cannot yield, check the timeout. */
+ /* If we cannot yield, update the clock and check the timeout. */
+ tv_update_date(0, 1);
if (tick_is_expired(hlua->expire, now_ms)) {
lua_pushfstring(L, "execution timeout");
WILL_LJMP(lua_error(L));