<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Spot the Bug! : Spot the Bug</title><link>http://blogs.msdn.com/rsamona/archive/tags/Spot+the+Bug/default.aspx</link><description>Tags: Spot the Bug</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Spot the Bug - March 13, 2006</title><link>http://blogs.msdn.com/rsamona/archive/2006/03/13/550949.aspx</link><pubDate>Tue, 14 Mar 2006 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:550949</guid><dc:creator>rsamona</dc:creator><slash:comments>25</slash:comments><comments>http://blogs.msdn.com/rsamona/comments/550949.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rsamona/commentrss.aspx?PostID=550949</wfw:commentRss><description>&lt;P&gt;It seems like more and more developers are making security mistakes when dealing with sockets. See if you can Spot the Bug.&lt;/P&gt;
&lt;P&gt;void Socket_Setup(void)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp; WORD wVersionRequested;&lt;BR&gt;&amp;nbsp; WSADATA wsaData;&lt;BR&gt;&amp;nbsp; wVersionRequested = MAKEWORD( 2, 2 );&lt;BR&gt;&amp;nbsp; ::WSAStartup(wVersionRequested, &amp;amp;wsaData);&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp; SOCKET sTCPServer = ::socket(AF_INET, SOCK_STREAM, 0);&lt;BR&gt;&amp;nbsp; struct sockaddr_in saTCPServAddr;&lt;BR&gt;&amp;nbsp; saTCPServAddr.sin_family = AF_INET;&lt;BR&gt;&amp;nbsp; saTCPServAddr.sin_addr.S_un.S_addr = ::htonl(INADDR_ANY);&lt;BR&gt;&amp;nbsp; saTCPServAddr.sin_port = ::htons(5678);&lt;BR&gt;&amp;nbsp; int len = sizeof(saTCPServAddr);&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp; int iFail =::bind(sTCPServer, (struct sockaddr*)&amp;amp;saTCPServAddr, len);&lt;BR&gt;&amp;nbsp; DWORD dwErr;&lt;BR&gt;&amp;nbsp; if(0 != iFail)&lt;BR&gt;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dwErr = ::WSAGetLastError();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\n\t Error occured.\n");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp; iFail = ::listen(sTCPServer, 2);&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp; struct sockaddr_in saClient;&lt;BR&gt;&amp;nbsp; int iClsize = sizeof(saClient);&lt;BR&gt;&amp;nbsp; SOCKET sClient = ::accept(sTCPServer, (struct sockaddr*)&amp;amp;saClient ,&amp;amp;iClsize);&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp; char strData[1024];&lt;BR&gt;&amp;nbsp; ::recv(sClient, strData, 1024, 0);&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp; printf("\n\nRealServer--Data from client --- %s ---", strData);&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp; ::shutdown(sTCPServer, SD_BOTH);&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp; ::WSACleanup();&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp; return;&lt;BR&gt;} &lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=550949" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rsamona/archive/tags/Spot+the+Bug/default.aspx">Spot the Bug</category></item></channel></rss>