GetHostbyaddr Function Is Not Thread Safe Without DNS and/or WINS (317936)



The information in this article applies to:

  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional

This article was previously published under Q317936

SYMPTOMS

Even though an invalid address exists, a gethostbyaddr call may return successfully with a pointer to the hostent structure from another thread. In a private subnet without any DNS or WINS settings and when the NetBIOS over TCP/IP option is turned on, when you call gethostbyaddr in multiple threads to resolve addresses in the subnet, the program should return error 11004 (WSANO_DATA) if the address is invalid.

RESOLUTION

To resolve this problem, obtain the latest service pack for Windows XP. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

322389 How to Obtain the Latest Windows XP Service Pack

The English version of this fix should have the following file attributes or later:
   Date       Time   Version      Size     File name
   -------------------------------------------------
   04-Apr-02  11:57  5.1.2600.41  149,120  Netbt.sys
				

WORKAROUND

To work around this problem, use a critical section to synchronize the call to gethostbyaddr among threads.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Windows XP Service Pack 1.

Modification Type:MinorLast Reviewed:9/27/2005
Keywords:kbHotfixServer kbQFE kbbug kbDNS kbenv kbfix kbnetwork kbWin2000PreSP3Fix kbWinsock kbWinXPsp1fix KB317936