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

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.

Properties

Article ID: 317936 - Last Review: October 27, 2006 - Revision: 1.2
APPLIES TO
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional
Keywords: 
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 smallbusiness.support.microsoft.com