From: short <> Date: Sun, 26 Jun 2005 03:00:18 +0000 (+0000) Subject: Fixed checking of IPv4 port validity. X-Git-Tag: udpgate-1_0_2~20 X-Git-Url: http://git.jankratochvil.net/?p=udpgate.git;a=commitdiff_plain;h=a53bb8d9a6da528af5f84a0a4bbcfd581a083360 Fixed checking of IPv4 port validity. --- diff --git a/src/network.c b/src/network.c index 59d3a9a..c658c13 100644 --- a/src/network.c +++ b/src/network.c @@ -580,19 +580,26 @@ size_t packet_length; static gboolean master_start(gint port) { struct sockaddr_in sockaddr_in; +uint16_t port_use; g_return_val_if_fail(port>=0,FALSE); g_return_val_if_fail(master==NULL,FALSE); + port_use=port; + if (port < 0 || port_use != port) { + g_warning(_("Port value %d is not valid for IPv4!"),(int)port); + return FALSE; + } + /* Setup 'master': */ if (!(master=client_new())) return FALSE; UDPGATE_MEMZERO(&sockaddr_in); sockaddr_in.sin_family=AF_INET; - sockaddr_in.sin_port=htons(port); + sockaddr_in.sin_port=htons(port_use); sockaddr_in.sin_addr.s_addr=htonl(INADDR_ANY); if (bind(master->gpollfd.fd,(struct sockaddr *)&sockaddr_in,sizeof(sockaddr_in))) { - g_warning("bind(sock,{AF_INET,INADDR_ANY:%d}): %m",(int)port); + g_warning("bind(sock,{AF_INET,INADDR_ANY:%u}): %m",(unsigned)port_use); return FALSE; } return TRUE;