[Issue 9353] New: Memory corruption with mixin-generated code and -cov switch

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri Jan 18 15:57:00 PST 2013


http://d.puremagic.com/issues/show_bug.cgi?id=9353

           Summary: Memory corruption with mixin-generated code and -cov
                    switch
           Product: D
           Version: D2
          Platform: x86_64
        OS/Version: Linux
            Status: NEW
          Severity: major
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: brian-schott at cox.net


--- Comment #0 from brian-schott at cox.net 2013-01-18 15:56:57 PST ---
Created an attachment (id=1180)
Ugly Dustmite-reduced test case

I'm getting the following error from dmd 2.061 (and the latest in git master):

*** glibc detected *** dmd.backup: free(): invalid next size (fast):
0x0000000007b98560 ***

The call to free() in question is here:
https://github.com/D-Programming-Language/dmd/blob/master/src/glue.c#L378

Moving the line "covb = (unsigned *)calloc((numlines + 32) / 32,
sizeof(*covb));" from 355 down to line 375 (just before the call to dtnbytes)
seems to work around this issue, but it really shouldn't if I'm reading the
code correctly.

I've attached a test case reduced by Dustmite. It's fairly ugly, and has the
strange property that changing almost anything about the strings being mixed in
causes the bug to not be triggered.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list