[shell-coding] Re: Bad Pointer errors all over the place

It might have to do with the fact that BSTRs store the length
before the string data. If SysAllocString gives you a pointer
p, then the BSTR really starts at p - 4, which is a 32-bit length.
This might confuse Boundschecker, although you'd think it
would be designed to handle that since BSTRs are so
common.

--
Kevin Schaffer


Daij-Djan wrote:


Geoshell 6 is 'leaking' memory and GDI resources. To find out why/how
and when, I got a trial of Boundschecker 7. Unfortunately, the results
have only further confused me.
No memory is leaked and no GDI resources are lost!? The only errors Boundschecker finds concern freeing strings.
We use CComBSTR and CComVariant and whenever a BSTR is freed
Boundschecker reports a:


Bad Pointer: 0x3A6AE8C passed to SysFreeString. In CComBSTR::Empty() or
in CComVariant::Clear()

The error occurs x thousand times, depending on how long you run the
program. It happens in any function and at any time.
The BSTR is a valid 0 terminated string... I don't have any idea of what
the stupid program thinks we're doing wrong. :)



__________________________________________________
Subscription options and archive:
http://www.freelists.org/list/shell-coding






__________________________________________________
Subscription options and archive:
http://www.freelists.org/list/shell-coding

Other related posts: