Note that the commit does NOT fix this issue, it's for the pull request that was affected by this bug.
Comment #4 by hsteoh — 2012-12-20T14:48:48Z
Found the cause of this bug. It's a stack overflow caused by the transient range struct using a large static array as buffer: it just takes a few copies of this struct (since structs are passed by value) to overflow the stack, upon which memory corruption starts happening.
The solution is to make TransientRange._buf a dynamic array whose length is initialized in this(), instead of a static array.
Comment #5 by verylonglogin.reg — 2014-08-17T06:20:21Z
(In reply to hsteoh from comment #4)
> Found the cause of this bug. It's a stack overflow caused by the transient
> range struct using a large static array as buffer: it just takes a few
> copies of this struct (since structs are passed by value) to overflow the
> stack, upon which memory corruption starts happening.
Why memory corruption instead of "Stack overflow" message? Looks like a serous issue.