https://bugs.winehq.org/show_bug.cgi?id=43252
--- Comment #3 from Mark Mankins Mark.Mankins@ngc.com --- Ok...I'm happy to report that I think my analysis is basically correct. My test program proves that for small values of RequestSize passed to IcmpSendEcho, wine incorrectly ignores the icmp echo response. For large values passed to IcmpSendEcho, wine will handle the icmp echo response, but it will not pass back the complete payload to the caller. If the caller attempts to validate that the echo response matches the echo request (for any value of RequestSize), the validation will fail. I will attach my test program to this issue.
Here is what I am seeing.
Unpatched (unmodified source tree):
osboxes@osboxes:~/wine64-build$ ./wine /mnt/hgfs/Shared/EchoTest/EchoTest.exe 55 Pinging localhost with 55 bytes of data... Address: 127.0.0.1 DataSize: 35 Echo data mismatch, byte 35 RoundTripTime: 0 Status: 0 osboxes@osboxes:~/wine64-build$ ./wine /mnt/hgfs/Shared/EchoTest/EchoTest.exe 20 Pinging localhost with 20 bytes of data... Address: 127.0.0.1 DataSize: 0 Echo data mismatch, byte 0 RoundTripTime: 0 Status: 0 osboxes@osboxes:~/wine64-build$ ./wine /mnt/hgfs/Shared/EchoTest/EchoTest.exe 17 Pinging localhost with 17 bytes of data... Unexpected result: 0
Patched with my patch in an earlier comment:
osboxes@osboxes:~/wine64-build$ ./wine /mnt/hgfs/Shared/EchoTest/EchoTest.exe 55 Pinging localhost with 55 bytes of data... Address: 127.0.0.1 DataSize: 55 RoundTripTime: 0 Status: 0 osboxes@osboxes:~/wine64-build$ ./wine /mnt/hgfs/Shared/EchoTest/EchoTest.exe 20 Pinging localhost with 20 bytes of data... Address: 127.0.0.1 DataSize: 20 RoundTripTime: 0 Status: 0 osboxes@osboxes:~/wine64-build$ ./wine /mnt/hgfs/Shared/EchoTest/EchoTest.exe 17 Pinging localhost with 17 bytes of data... Address: 127.0.0.1 DataSize: 17 RoundTripTime: 0 Status: 0