[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