[Bug 40865] Steam does not connect to internet ( gethostbyname_r used even when not declared in netdb.h)

wine-bugs at winehq.org wine-bugs at winehq.org
Thu Jun 30 14:38:04 CDT 2016


https://bugs.winehq.org/show_bug.cgi?id=40865

Bruno Jesus <00cpxxx at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |major
             Status|UNCONFIRMED                 |NEW
            Summary|Steam does not connect to   |Steam does not connect to
                   |internet (gethostbyname_r   |internet (gethostbyname_r
                   |does not return ERANGE in   |used even when not declared
                   |NetBSD)                     |in netdb.h)
     Ever confirmed|0                           |1

--- Comment #8 from Bruno Jesus <00cpxxx at gmail.com> ---
(In reply to Adrien Fernandes from comment #7)
> http://mail-index.netbsd.org/netbsd-users/2016/06/29/msg018649.html

Thanks. I just saw Christos Zoulas reply but I don't know how to reply to his
specific message. I'll quote him here:

==========

gethostbyname_r()/gethostbyaddr_r() are not documented for a reason;
they are non-standard. There are at least 3 flavors out there last
time I checked, and portable code should not be using them. I
implemented them in NetBSD just to use them inside
getaddrinfo()/getnameinfo(). I chose not to hide them completely
and that was probably a bad decision seeing that some auto-configuration
schemes look for functions in libc and then try to use the functions
(even when they are no headers describing the functions; I'd really
like to know how do they deduce the arguments...) Why doesn't wine
use those instead (getaddrinfo()/getnameinfo())?

==========

I believe this is a bug in Wine's side because the function is not present in
netdb.h as expected so the configure check does generate a warning (just
tested). Maybe we can add -Werror to this specific check (is it possible?)
which would ensure the function will not be used when it is linkable but not
declared anywhere.

I just looked further about gethostbyname_r and it seems like there is at least
one variation where the function returns a struct hostent * instead of an int
[1].

So we need to be more careful in this case as it is not only used in winsock
but also in kernel32 (bug 40799).

This is major since any network related program will not be usable in NetBSD. 

[1]
http://www.qnx.com/developers/docs/6.3.0SP3/neutrino/lib_ref/g/gethostbyname_r.html

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list