[GHC] #12010: Incorrect return types for recv() and send() on Windows
GHC
ghc-devs at haskell.org
Thu May 19 19:47:07 UTC 2016
#12010: Incorrect return types for recv() and send() on Windows
-----------------------------------+--------------------------------------
Reporter: enolan | Owner: enolan
Type: bug | Status: patch
Priority: normal | Milestone:
Component: Core Libraries | Version:
Resolution: | Keywords:
Operating System: Windows | Architecture: x86_64 (amd64)
Type of failure: Runtime crash | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s): Phab:D2170
Wiki Page: |
-----------------------------------+--------------------------------------
Comment (by Tamar Christina <tamar@…>):
In [changeset:"1ee47c1bfa35c7be435adaec5c1fa9ec92cc776d/ghc"
1ee47c1b/ghc]:
{{{
#!CommitTicketReference repository="ghc"
revision="1ee47c1bfa35c7be435adaec5c1fa9ec92cc776d"
Use the correct return type for Windows' send()/recv() (Fix #12010)
Summary:
They return signed 32 bit ints on Windows, even on a 64 bit OS, rather
than
Linux's 64 bit ssize_t. This means when recv() returned -1 to signal an
error we
thought it was 4294967295. It was converted to an int, -1 and the buffer
was
memcpy'd which caused a segfault. Other bad stuff happened with send()s.
See also note CSsize in System.Posix.Internals.
Add a test for #12010
Test Plan:
- GHC testsuite (T12010)
- http-conduit test (https://github.com/snoyberg/http-client/issues/191)
Reviewers: austin, hvr, bgamari, Phyx
Reviewed By: Phyx
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D2170
GHC Trac Issues: #12010
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12010#comment:2>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list