http://bugs.winehq.org/show_bug.cgi?id=12837
Summary: Stack trace in socket.c when starting Call of Duty multiplayer Product: Wine Version: CVS/GIT Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: enhancement Priority: P2 Component: winsock AssignedTo: wine-bugs@winehq.org ReportedBy: aeleneski@comcast.net
When trying to start Call of Duty multiplayer I receive the stack trace attached. Also note that when compiling this package I receive the warning:
socket.c: In function ‘WS_gethostbyname’: socket.c:3247: warning: comparison between pointer and integer
Which is the same line where the stack points to.
http://bugs.winehq.org/show_bug.cgi?id=12837
edward savage epssyis@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |epssyis@gmail.com
--- Comment #1 from edward savage epssyis@gmail.com 2008-04-27 16:10:39 --- If this is CoD 1.x multiplayer then this is a regression.
I know of it working correctly around 0.9.41 if any one wishes to do a regression test. Due to scratches I no longer have a working copy of this game.
http://bugs.winehq.org/show_bug.cgi?id=12837
--- Comment #2 from Kai Blin kai.blin@gmail.com 2008-04-27 16:21:47 --- What compiler is that and what does your dlls/ws2_32/socket.c line 3247 look like?
http://bugs.winehq.org/show_bug.cgi?id=12837
--- Comment #3 from Kai Blin kai.blin@gmail.com 2008-04-27 16:25:10 --- (In reply to comment #1)
If this is CoD 1.x multiplayer then this is a regression.
I know of it working correctly around 0.9.41 if any one wishes to do a regression test. Due to scratches I no longer have a working copy of this game.
I'd be interested to see if it worked before 1bcbe865. However, I don't get that compile warning, and I really don't see how it could happen with the current code.
http://bugs.winehq.org/show_bug.cgi?id=12837
--- Comment #4 from Andrew Eleneski aeleneski@comcast.net 2008-04-27 16:33:35 --- (In reply to comment #3)
(In reply to comment #1)
If this is CoD 1.x multiplayer then this is a regression.
I know of it working correctly around 0.9.41 if any one wishes to do a regression test. Due to scratches I no longer have a working copy of this game.
I'd be interested to see if it worked before 1bcbe865. However, I don't get that compile warning, and I really don't see how it could happen with the current code.
This is the code around 3247:
if (retval->h_addr_list == 127 && strcmp(name, "localhost") != 0) { /* hostname != "localhost" but has loopback address. replace by our * special address.*/ memcpy(retval->h_addr_list[0], magic_loopback_addr, 4); }
I am also running gcc 4.2.3.
Now I also have tried changing the if to
if (retval && retval->h_addr_list == 127 && strcmp(name, "localhost") != 0)
and the compile warning stays, but I am able to start COD without a stack trace.
http://bugs.winehq.org/show_bug.cgi?id=12837
Kai Blin kai.blin@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID
--- Comment #5 from Kai Blin kai.blin@gmail.com 2008-04-27 16:38:38 ---
This is the code around 3247:
if (retval->h_addr_list == 127 && strcmp(name, "localhost") != 0) { /* hostname != "localhost" but has loopback address. replace by our * special address.*/ memcpy(retval->h_addr_list[0], magic_loopback_addr, 4); }
That's not what the code looks like upstream. Check http://source.winehq.org/git/wine.git/?a=blob;f=dlls/ws2_32/socket.c;h=1fe00...
or manually fix the line to be
if (retval->h_addr_list[0][0] == 127 &&
However, if that line is corrupted, others probably are broken as well.
http://bugs.winehq.org/show_bug.cgi?id=12837
Andrew Eleneski aeleneski@comcast.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |UNCONFIRMED Resolution|INVALID |
--- Comment #6 from Andrew Eleneski aeleneski@comcast.net 2008-04-27 18:20:41 --- (In reply to comment #5)
This is the code around 3247:
if (retval->h_addr_list == 127 && strcmp(name, "localhost") != 0) { /* hostname != "localhost" but has loopback address. replace by our * special address.*/ memcpy(retval->h_addr_list[0], magic_loopback_addr, 4); }
That's not what the code looks like upstream. Check http://source.winehq.org/git/wine.git/?a=blob;f=dlls/ws2_32/socket.c;h=1fe00...
or manually fix the line to be
if (retval->h_addr_list[0][0] == 127 &&
However, if that line is corrupted, others probably are broken as well.
Ok, well I redownloaded all code, checked the socket.c file and it shows as you have stated. But I still get the stack trace.
http://bugs.winehq.org/show_bug.cgi?id=12837
--- Comment #7 from Andrew Eleneski aeleneski@comcast.net 2008-04-27 18:23:53 --- Created an attachment (id=12529) --> (http://bugs.winehq.org/attachment.cgi?id=12529) Stack trace
http://bugs.winehq.org/show_bug.cgi?id=12837
--- Comment #8 from Andrew Eleneski aeleneski@comcast.net 2008-04-27 18:58:10 --- Now if I remove this commit: ws2_32: Work around the host name resolving to 127.x.x.x when using that for binding.
Then I am able to start up Call of Duty.
http://bugs.winehq.org/show_bug.cgi?id=12837
--- Comment #9 from Kai Blin kai.blin@gmail.com 2008-04-28 01:47:47 --- Did you do a "make clean"? What does your /etc/hosts look like? Can you provide a WINEDEBUG=+winsock trace?
http://bugs.winehq.org/show_bug.cgi?id=12837
Hans Leidekker hans@it.vu.nl changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |hans@it.vu.nl
--- Comment #10 from Hans Leidekker hans@it.vu.nl 2008-04-28 03:03:28 --- gethostbyname can fail so I think line 3247 should read:
if (retval && retval->h_addr_list[0][0] == 127 && strcmp(name, "localhost") != 0)
http://bugs.winehq.org/show_bug.cgi?id=12837
Kai Blin kai.blin@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1
--- Comment #11 from Kai Blin kai.blin@gmail.com 2008-04-28 03:48:10 --- Whoops, good catch. Sent a patch.
http://bugs.winehq.org/show_bug.cgi?id=12837
Kai Blin kai.blin@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #12 from Kai Blin kai.blin@gmail.com 2008-04-28 08:05:23 --- Fix committed in c0a3ac5006603baa08161fb78c738c6a9520b6df.
http://bugs.winehq.org/show_bug.cgi?id=12837
--- Comment #13 from Andrew Eleneski aeleneski@comcast.net 2008-04-30 18:20:06 --- Yes, it is working again. Thank you very much.
http://bugs.winehq.org/show_bug.cgi?id=12837
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #14 from Alexandre Julliard julliard@winehq.org 2008-05-02 12:38:22 --- Closing bugs fixed in 0.9.61.
http://bugs.winehq.org/show_bug.cgi?id=12837
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|CVS/GIT |unspecified