[gdal-dev] OGRFree(pszSrcWKT) can crash Matlab
jluis at ualg.pt
jluis at ualg.pt
Sat Jan 23 10:04:58 EST 2010
Hi,
I have a serious crash in one of my Matlab MEXs caused by a call to
OGRFree() with an argument of size one (possibly the null terminator).
This happens on OSX SL (64 bits) but not on Windows (where I still
build at 32 bits)
Here is, as far as I could trace it, what is happening (SVN version of
the same age as GDAL1.7RC1)
mexPrintf("---- %s\n%s\n", pszSrcWKT,pszDstWKT);
That prints
---- GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS
84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4326"]]
PROJCS["UTM Zone 29, Northern Hemisphere",GEOGCS["WGS
84",DATUM["WGS_1984",SPHEROID["WGS
84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
Next the code does:
GDALClose( hSrcDS );
mexPrintf("---- %s\n%s\n", pszSrcWKT,pszDstWKT);
and now pszSrcWKT is empty. See
----
PROJCS["UTM Zone 29, Northern Hemisphere",GEOGCS["WGS
84",DATUM["WGS_1984",SPHEROID["WGS
84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-9],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
If I make it print the size of pszSrcWKT with strlen(pszSrcWKT) the
answer is 1 and finally the MEX (and the entire MATLAB) crash on the
call
OGRFree(pszSrcWKT);
Joaquim Luis
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
More information about the gdal-dev
mailing list