https://bugs.winehq.org/show_bug.cgi?id=43286
Bug ID: 43286 Summary: Qt 5.7.0 based: Cannot read UDP packets: "errno 90, (Message too long)" Product: Wine Version: 2.11 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winsock Assignee: wine-bugs@winehq.org Reporter: winehq@supradigital.org Distribution: ---
Created attachment 58625 --> https://bugs.winehq.org/attachment.cgi?id=58625 Binary, source code, debug log
In any program using Qt 5.7.0, if you try to read a udp datagram packet, the call would always return size 0 and leave you with an empty peer-address/port as well.
I discovered the problem in the launcher for my game which uses UDP to ping various servers.
I wrote a minimal UDP server to which you can connect with netcat (or anything) and it easily reproduces the problem.
Attached you'll find a small archive containing:
- minimal udp test server - source code for that server - debug log with +winsock showing the error - the client netcat command to cause that error
Note: I have not checked a simple raw UDP server using the winsock API directly.
The problem exists at least since wine v1.6.2
https://bugs.winehq.org/show_bug.cgi?id=43286
Marenz winehq@supradigital.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |winehq@supradigital.org
https://bugs.winehq.org/show_bug.cgi?id=43286
--- Comment #1 from Marenz winehq@supradigital.org --- Update: The problem does NOT seem to happen when I start the udptest server using wineconsole or winedebug
https://bugs.winehq.org/show_bug.cgi?id=43286
--- Comment #2 from Marenz winehq@supradigital.org --- However that seems to be only true for console based programs. My launcher still doesn't work, even with winedbg/wineconsole
https://bugs.winehq.org/show_bug.cgi?id=43286
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4@web.de
https://bugs.winehq.org/show_bug.cgi?id=43286
Damjan Jovanovic damjan.jov@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW CC| |damjan.jov@gmail.com Keywords| |source
--- Comment #3 from Damjan Jovanovic damjan.jov@gmail.com --- There is a real bug here.
The problem is that Wine's WSARecvFrom() cannot distinguish between: 1. truncation during conversion of cmsghdrs from *nix to Windows, which is an error. 2. a NULL WSAMSG.Control.buf passed in by the application, which is valid when there is no control data to convert.
It always treats it as case (1) and reports an error.
This is the case even with Wine 4.12.1.
https://bugs.winehq.org/show_bug.cgi?id=43286
--- Comment #4 from Damjan Jovanovic damjan.jov@gmail.com --- Created attachment 64888 --> https://bugs.winehq.org/attachment.cgi?id=64888 allow NULL control buffer in WSARecvMsg
Proposed test case and patch that seems to fix the problem.
https://bugs.winehq.org/show_bug.cgi?id=43286
Damjan Jovanovic damjan.jov@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Qt 5.7.0 based: Cannot read |WSARecvMsg wrongly forbids |UDP packets: "errno 90, |NULL control buffers (Qt |(Message too long)" |5.7.0 based: Cannot read | |UDP packets: "errno 90, | |(Message too long)")
https://bugs.winehq.org/show_bug.cgi?id=43286
Damjan Jovanovic damjan.jov@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #5 from Damjan Jovanovic damjan.jov@gmail.com --- commit aa2c84a9db064a16598c4198c435e2e5896dd059 Author: Damjan Jovanovic <damjan.jov@...> Date: Thu Aug 1 06:11:21 2019 +0200
ws2_32: WSARecvMsg allows a NULL control buffer when no control messages arrive.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=43286
Resolving FIXED.
Thank you for your excellent bug report and test case!
https://bugs.winehq.org/show_bug.cgi?id=43286
Damjan Jovanovic damjan.jov@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |aa2c84a9db064a16598c4198c43 | |5e2e5896dd059
https://bugs.winehq.org/show_bug.cgi?id=43286
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #6 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 4.13.
https://bugs.winehq.org/show_bug.cgi?id=43286
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |4.0.x
https://bugs.winehq.org/show_bug.cgi?id=43286
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|4.0.x |---
--- Comment #7 from Michael Stefaniuc mstefani@winehq.org --- Removing the 4.0.x milestone from bug fixes included in 4.0.3.