Bug in the heap management code?

Shachar Shemesh wine-devel at shemesh.biz
Thu Sep 18 10:49:01 CDT 2003


Mike Hearn wrote:

>This is very much like a problem I am having with InstallShield.
>Something, somewhere, is trashing the heap data structures, which causes
>a crash some time later, often yards away from the original bug. As far
>as I know, there is no good way to spot this problem, it's just C/C++
>sucking.... maybe valgrind might help?
>  
>
Something else that might help is an algorithm I suggested a long time 
ago, and which was not thought as worth the effort. Since I have not 
tried to run Wine with valgrind yet, I don't know whether it is or isn't.

The gist of it is that you pad each and every alloc with more memory, 
and you fill it in with signatures. When you release the memory, you 
check that the signatures are ok. Tweaking the amount of extra memory 
can cause you to not corrupt the heap structure at some point, which 
will allow you reliable pin-pointing the buffer in which the overflow 
occures.

I have never worked with valgrind (though I love the principle behind 
it), so I can't say whether it is more effective at this sort of 
problems. My method, in any case, is not very difficult to implement, so 
if valgrind does not provide what you need, I may invest the time in it.

             Shachar

-- 
Shachar Shemesh
Open Source integration consultant
Home page & resume - http://www.shemesh.biz/





More information about the wine-devel mailing list