Opened 16 years ago
Closed 15 years ago
#12 closed defect (fixed)
GTIFDirectoryInfo() called in GTIFGetProj4Defn() with bad pointer type.
Reported by: | rouault | Owned by: | warmerdam |
---|---|---|---|
Priority: | critical | Milestone: | |
Component: | libgeotiff | Version: | |
Keywords: | Cc: | hobu |
Description
Changeset r1564 is wrong. GTIFDirectoryInfo() is called with a GTIFDefn * pointer, but it expects a GTIF*, and both structures aren't compatible at all. GCC and MVSC both complain about that. I noticed that in gdal trunk as latest libgeotiff was recently synchronized in gdal (http://trac.osgeo.org/gdal/changeset/16819).
geotiff_proj4.c(854) : warning C4133: 'function' : incompatible types - from 'GTIFDefn *' to 'GTIF *'
geotiff_proj4.c: In function 'GTIFGetProj4Defn': geotiff_proj4.c:854: warning: passing argument 1 of 'GTIFDirectoryInfo' from incompatible pointer type
Change History (4)
comment:1 by , 16 years ago
comment:2 by , 16 years ago
I have no idea how to fix it, but I'd encourage you to revert that change in the meanwhile, as it could likely cause memory corruption or crashes.
comment:3 by , 15 years ago
Frank,
Which combination of things on the GTIFDefn* would denote that it isn't filled in? Should I write a function to test if everything in the GTIFDefn is 0 (which we'll have to remember to update if we change the definition of the GTIFDefn)? Is that enough to say the GTIFDefn* is nothing?
There's no way to get back the GTIF* from the GTIFDefn to run the directory info to find out the number of keys. It would be handy to add a pointer to the GTIFDefn that pointed back to its original GTIF*.
comment:4 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
hmm... how did that *ever* work? :) The problem is still there though -- how do we find out if a GTIFDefn is empty or not when .Model can't tell us (or changing the signature of GTIFGetProj4Defn)? If either of you see a way, please fix it. The length of ProjParmId maybe?