@@ -2711,9 +2711,8 @@ ngx_http_lua_socket_tcp_settimeout(lua_State *L)
27112711 }
27122712
27132713 timeout = (ngx_int_t ) lua_tonumber (L , 2 );
2714- if (timeout > (ngx_int_t ) NGX_MAX_INT32_VALUE ) {
2715- return luaL_error (L , "lua tcp socket timeout %f will overflow" ,
2716- (lua_Number ) timeout );
2714+ if (timeout >> 31 ) {
2715+ return luaL_error (L , "timeout value too large" );
27172716 }
27182717
27192718 lua_pushinteger (L , timeout );
@@ -2759,21 +2758,18 @@ ngx_http_lua_socket_tcp_settimeouts(lua_State *L)
27592758 }
27602759
27612760 connect_timeout = (ngx_int_t ) lua_tonumber (L , 2 );
2762- if (connect_timeout > (ngx_int_t ) NGX_MAX_INT32_VALUE ) {
2763- return luaL_error (L , "lua tcp socket connect timeout %f will overflow" ,
2764- (lua_Number ) connect_timeout );
2761+ if (connect_timeout >> 31 ) {
2762+ return luaL_error (L , "timeout value too large" );
27652763 }
27662764
27672765 send_timeout = (ngx_int_t ) lua_tonumber (L , 3 );
2768- if (send_timeout > (ngx_int_t ) NGX_MAX_INT32_VALUE ) {
2769- return luaL_error (L , "lua tcp socket send timeout %f will overflow" ,
2770- (lua_Number ) send_timeout );
2766+ if (send_timeout >> 31 ) {
2767+ return luaL_error (L , "timeout value too large" );
27712768 }
27722769
27732770 read_timeout = (ngx_int_t ) lua_tonumber (L , 4 );
2774- if (read_timeout > (ngx_int_t ) NGX_MAX_INT32_VALUE ) {
2775- return luaL_error (L , "lua tcp socket read timeout %f will overflow" ,
2776- (lua_Number ) read_timeout );
2771+ if (read_timeout >> 31 ) {
2772+ return luaL_error (L , "timeout value too large" );
27772773 }
27782774
27792775 lua_rawseti (L , 1 , SOCKET_READ_TIMEOUT_INDEX );
0 commit comments