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

Article translations Article translations
Article ID: 317936 - View products that this article applies to.
This article was previously published under Q317936
Expand all | Collapse all


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.


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


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


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.


Article ID: 317936 - Last Review: October 27, 2006 - Revision: 1.2
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional
kbhotfixserver kbqfe kbbug kbdns kbenv kbfix kbnetwork kbwin2000presp3fix kbwinsock kbwinxpsp1fix KB317936

Give Feedback


Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from