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 |
|---|---|---|---|
| Priority: | normal | Milestone: | 1.4.3 |
| Component: | GDAL_Raster | Version: | svn-trunk |
| Severity: | major | Keywords: | InMemory Raster |
| Cc: | warmerdam |
Description
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.
Attachments
Change History
Note: See
TracTickets for help on using
tickets.

