[PATCH libubox 2/4] lua/uloop: make get_sock_fd capable of absolute addresses

Karl Palsson karlp at etactica.com
Tue Jun 30 06:38:42 EDT 2020


The original code required the use of relative addresses into the lua
stack.  It should accept either.

Signed-off-by: Karl Palsson <karlp at etactica.com>
---
 lua/uloop.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lua/uloop.c b/lua/uloop.c
index fcbe274..394970d 100644
--- a/lua/uloop.c
+++ b/lua/uloop.c
@@ -188,7 +188,8 @@ static int get_sock_fd(lua_State* L, int idx) {
 		lua_getfield(L, idx, "getfd");
 		if(lua_isnil(L, -1))
 			return luaL_error(L, "socket type missing 'getfd' method");
-		lua_pushvalue(L, idx - 1);
+		/* if we have absolute, no need to adjust for getfield() call */
+		lua_pushvalue(L, idx > 0 ? idx: idx - 1);
 		lua_call(L, 1, 1);
 		fd = lua_tointeger(L, -1);
 		lua_pop(L, 1);
-- 
2.21.3




More information about the openwrt-devel mailing list