[Gdal-dev] OGR geometry transform memory issue
    Frank Warmerdam 
    warmerdam at pobox.com
       
    Mon Nov 10 09:45:57 EST 2003
    
    
  
Brian Marchand wrote:
> Hello,
> 
>  
> 
> I found a crash in the OGR code due to freeing up the target 
> OGRSpatialReference object that is created by the 
> OGRCoordinateTransformation class when calling 
> OGRCreateCoordinateTransformation. The crash occurred when the geometry 
> transform method assigned the “target” OGRSpatialReference object that 
> was created by the transformation object. When I destroyed the 
> transformation object the OGRProj4CT destructor destroyed the 
> OGRSpatialReference and the geometry was then pointing to deleted 
> memory. The next time the geometry’s SRS object was used I would get a 
> crash.
> 
>  
> 
> It seems like the problem could be fixed two ways. Either the geometry 
> clones the OGRSpatialReference object instead of assigning it, or the 
> OGRCoordinateTransformation object looks at the reference count of the 
> target OGRSpatialReference object before deleting it.
Brian,
The correct approach would be to decrement and check the reference count
before destroying.  Cloning the coordinate system would be very expensive.
I will implement this in CVS and add a test to the testsuite.
Best regards,
-- 
---------------------------------------+--------------------------------------
I set the clouds in motion - turn up   | Frank Warmerdam, warmerdam at pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush    | Geospatial Programmer for Rent
    
    
More information about the Gdal-dev
mailing list