Author: cgutman Date: Sun Oct 26 22:26:21 2008 New Revision: 37009
URL: http://svn.reactos.org/svn/reactos?rev=37009&view=rev Log: - Check that we got the port that we wanted if we specified one
Modified: branches/aicom-network-fixes/drivers/network/tcpip/tcpip/fileobjs.c
Modified: branches/aicom-network-fixes/drivers/network/tcpip/tcpip/fileobjs.c URL: http://svn.reactos.org/svn/reactos/branches/aicom-network-fixes/drivers/netw... ============================================================================== --- branches/aicom-network-fixes/drivers/network/tcpip/tcpip/fileobjs.c [iso-8859-1] (original) +++ branches/aicom-network-fixes/drivers/network/tcpip/tcpip/fileobjs.c [iso-8859-1] Sun Oct 26 22:26:21 2008 @@ -285,6 +285,14 @@ case IPPROTO_TCP: AddrFile->Port = TCPAllocatePort(Address->Address[0].Address[0].sin_port); + + if (Address->Address[0].Address[0].sin_port && + AddrFile->Port != Address->Address[0].Address[0].sin_port) + { + ExFreePool(AddrFile); + return STATUS_INVALID_PARAMETER; + } + AddrFile->Send = NULL; /* TCPSendData */ break;
@@ -292,6 +300,14 @@ TI_DbgPrint(MID_TRACE,("Allocating udp port\n")); AddrFile->Port = UDPAllocatePort(Address->Address[0].Address[0].sin_port); + + if (Address->Address[0].Address[0].sin_port && + AddrFile->Port != Address->Address[0].Address[0].sin_port) + { + ExFreePool(AddrFile); + return STATUS_INVALID_PARAMETER; + } + TI_DbgPrint(MID_TRACE,("Setting port %d (wanted %d)\n", AddrFile->Port, Address->Address[0].Address[0].sin_port));