From 087442fc1e36298dfbef018401b39d72249a17a9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rafa=C3=ABl=20Carr=C3=A9?= Date: Mon, 10 May 2010 17:04:05 +0200 Subject: [PATCH] lua/net.c: revert [14707cbaca9fa] and fix properly Always return 1 argument, but avoid pushing 0xffffffff bytes on the stack Also fix vlclua_fd_read() --- modules/misc/lua/libs/net.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/modules/misc/lua/libs/net.c b/modules/misc/lua/libs/net.c index b5227d2ca6..c23f4756b5 100644 --- a/modules/misc/lua/libs/net.c +++ b/modules/misc/lua/libs/net.c @@ -184,14 +184,9 @@ static int vlclua_net_recv( lua_State *L ) int i_fd = luaL_checkint( L, 1 ); size_t i_len = luaL_optint( L, 2, 1 ); char psz_buffer[i_len]; - i_len = recv( i_fd, psz_buffer, i_len, 0 ); - if( i_len > 0 ) - { - lua_pushlstring( L, psz_buffer, i_len ); - return 1; - } - else - return 0; + ssize_t i_ret = recv( i_fd, psz_buffer, i_len, 0 ); + lua_pushlstring( L, psz_buffer, (i_ret >= 0) ? i_ret : 0 ); + return 1; } /***************************************************************************** @@ -261,8 +256,8 @@ static int vlclua_fd_read( lua_State *L ) int i_fd = luaL_checkint( L, 1 ); size_t i_len = luaL_optint( L, 2, 1 ); char psz_buffer[i_len]; - i_len = read( i_fd, psz_buffer, i_len ); - lua_pushlstring( L, psz_buffer, i_len ); + ssize_t i_ret = read( i_fd, psz_buffer, i_len ); + lua_pushlstring( L, psz_buffer, (i_ret >= 0) ? i_ret : 0 ); return 1; } -- 2.39.2