Ticket #1706 (closed defect: fixed)
[PATCH] GDAL In Memory Raster extracts invalid memory address in case the address is greater than MAX_LONG.
|Reported by:||ReinerBeck||Owned by:||rouault|
The problem is actually in file cpl_conv.cpp: CPLScanPointer(): In case a non-hex value is provided as the pointer for the memory image, the function "CPLScanLong()" should not be used, as it does not handle values above MAX_LONG correctly. In case the value is greater, the method returns a wrong address, resulting in a segmentation violation when accessing the image data.
Workaround: In case hex addresses are used, the address is extracted correctly.
Solution: There should be a method CPLScanULong() which should be sued.