Opened 19 years ago
Last modified 19 years ago
#849 closed defect (fixed)
Error to open ecw or mrsid file in GDALOpen function
Reported by: | Owned by: | warmerdam | |
---|---|---|---|
Priority: | high | Milestone: | |
Component: | GDAL_Raster | Version: | unspecified |
Severity: | normal | Keywords: | |
Cc: |
Description
Hi, I'm using a gdal cvs checkout from last week, the last ECW sources and MrSID libraries. I've compiled the gdal and ecw library with /MDd option. Description: * When I try to open a ecw or mrsid file, GDALOpen function crashes. Reproduction: * The call is like : GDALOpen("C:\\RGBImage.ecw", GA_ReadOnly); Causes: * I found that ECWDataset::Open (..) uses VSIFOpenL, and this function uses CreateFile to obtain a handle which then is cast to a FILE*. This pointer is used to read with fread in ReadBoxes, and this operation crashes. I think there is a problem using the handle obtained from CreateFile for the fread function. If I change the CreateFile function to an equivalent fopen(), then everything seems to work correctly. Thanks a lot.
Change History (3)
comment:2 by , 19 years ago
Xavi, Good job debugging! I think the correct fix is to use VSIFReadL() in gdal/gcore/gdaljp2box.cpp and I have committed the corresponding change in CVS. If you have a chance, could you verify that works OK for you? On Linux the "large file" and "normal file" FILE handles are compatible, so it is easy for me to make mistakes and mix them. Of course, they aren't compatible on Win32 as you have encountered.
comment:3 by , 19 years ago
Hi Frank, I updated gdal from cvs yesterday, and I've verified it. Your fix works perfectly. Thanks
Note:
See TracTickets
for help on using tickets.