A member of our team has reported an issue on Windows 2008 R2 which reports "duplicate memory free operation". I can't find much about this on the Web. The problem can't be reporoduced on a non-english operating system. Any suggestions?
A:
DOH - seems that this is some kind of assert that you get only on Windows Checked (i.e. debug) builds of Windows.
Stephen Connolly
2010-05-20 08:05:46
+2
A:
It usually means you've freed the same memory twice, which is a big no-no. The reason for this is that freeing the memory returns it to the free pool where it can be allocated for another use.
Now while freeing the same memory twice is not so bad if it can be intercepted and ignored, that's not so easy if it's been allocated to someone else in the meantime. That will mean that the same memory block may be allocated to multiple uses and you're quite likely to get data corruption as a consequence.
paxdiablo
2010-05-20 08:06:11
How can it be that this is only reported on non-English Win2k8R2?
sharptooth
2010-05-20 08:13:05
If the non-English version of windows used the same code and data as the English version, all the messages would be in English. Perhaps it only happens if a string is a certain length, or perhaps it only happens in multi-byte code paths.
Pete Kirkham
2010-05-20 08:33:35
One easy way of tracking this down is to run the application under application verifier - that will break into the debugger upon hte double free.
Larry Osterman
2010-05-20 21:24:28