From: daurnimator Date: Wed, 18 Dec 2013 22:55:03 +0000 (-0500) Subject: net/server_select: addclient: Check arguments X-Git-Url: https://git.enpas.org/?a=commitdiff_plain;h=d46c32950e441d814b78d08dfe66bf493969bb86;hp=106006f3d8d98a639ecb75593689c49d065b03d7;p=prosody.git net/server_select: addclient: Check arguments --- diff --git a/net/server_select.lua b/net/server_select.lua index 14d55a32..61919863 100644 --- a/net/server_select.lua +++ b/net/server_select.lua @@ -943,6 +943,21 @@ local wrapclient = function( socket, ip, serverport, listeners, pattern, sslctx end local addclient = function( address, port, listeners, pattern, sslctx ) + local err + if type( listeners ) ~= "table" then + err = "invalid listener table" + elseif type ( addr ) ~= "string" then + err = "invalid address" + elseif type( port ) ~= "number" or not ( port >= 0 and port <= 65535 ) then + err = "invalid port" + elseif sslctx and not has_luasec then + err = "luasec not found" + end + if err then + out_error( "server.lua, addclient: ", err ) + return nil, err + end + local client, err = luasocket.tcp( ) if err then return nil, err