Re: [GHC] #7762: when using lots of memory: internal error: evacuate(static): strange closure type 4
#7762: when using lots of memory: internal error: evacuate(static): strange closure type 4 -----------------------------------+---------------------------------- Reporter: rthiemann | Owner: simonmar Type: bug | Status: new Priority: highest | Milestone: 7.8.1 Component: Runtime System | Version: 7.0.4 Resolution: | Keywords: Operating System: Linux | Architecture: x86_64 (amd64) Type of failure: Runtime crash | Difficulty: Unknown Test Case: | Blocked By: Blocking: | Related Tickets: -----------------------------------+---------------------------------- Comment (by Simon Marlow <marlowsd@…>): In [changeset:"36b042fbf60210ab6859d96e5b4b5e121085816d/ghc"]: {{{ #!CommitTicketReference repository="ghc" revision="36b042fbf60210ab6859d96e5b4b5e121085816d" Make integer overflow less likely to happen (#7762) The particular problematic code in #7762 was this: nat newSize = size - n; char *freeAddr = MBLOCK_ROUND_DOWN(bd->start); freeAddr += newSize * MBLOCK_SIZE; ^^^^^^^^^^^^^^^^^^^^^^ OVERFLOW!!! For good measure, I'm going to fix the bug twice. This patch fixes the class of bugs of this kind, by making sure that any expressions involving BLOCK_SIZE or MBLOCK_SIZE are promoted to unsigned long. In a separate patch, I'll fix a bunch of individual instances (including the one above). }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/7762#comment:8> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
participants (1)
-
GHC