zero {host,serv}ent_data before passing it to the system functions to avoid crashing (see #10332)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58386 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2009-01-25 12:45:29 +00:00
parent 110c50944f
commit ec5756d6b5

View File

@@ -121,15 +121,29 @@ IMPLEMENT_DYNAMIC_CLASS(wxUNIXaddress, wxSockAddress)
#endif
// the _r functions need the extra buffer parameter but unfortunately its type
// differs between different systems
// differs between different systems and for the systems which use opaque
// structs for it (at least AIX and OpenBSD) it must be zero-filled before
// being passed to the system functions
#ifdef HAVE_FUNC_GETHOSTBYNAME_R_3
typedef hostent_data wxGethostBuf;
struct wxGethostBuf : hostent_data
{
wxGethostBuf()
{
memset(this, 0, sizeof(hostent_data));
}
};
#else
typedef char wxGethostBuf[1024];
#endif
#ifdef HAVE_FUNC_GETSERVBYNAME_R_3
typedef servent_data wxGetservBuf;
struct wxGetservBuf : servent_data
{
wxGethostBuf()
{
memset(this, 0, sizeof(servent_data));
}
};
#else
typedef char wxGetservBuf[1024];
#endif