Opened 18 years ago

Last modified 18 years ago

#1211 closed defect (fixed)

GetNextFeature crashes in 1.3.2 for shapefile with no fields

Reported by: rengelkemeir@… Owned by: warmerdam
Priority: high Milestone:
Component: OGR_SF Version: unspecified
Severity: normal Keywords:
Cc:

Description

The shapefile in question has a .dbf file, but has no fields in it.
In earlier version I was able to read this file properly and obtain the geometry.
With 1.3.2 version GetNextFeature crashes in DBFIsRecordDeleted since hDBF is NULL.
Not quite sure what best solution would be.
Should DBFIsRecordDeleted return FALSE if DBFHandle is NULL?
Or should DBFIsRecordDeleted be called only if have valid handle?
OGRShapeLayer::GetNextFeature() and OGRShapeLayer::Repack() would work fine with
FALSE return (Repack would do nothing), but looks like
OGRShapeLayer::DeleteFeature() would later crash in DBFMarkRecordDeleted.

Change History (2)

comment:1 by warmerdam, 18 years ago

Richard, 

I have made some modifications to gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp
and ogrshapelayer.cpp to handle the hDBF == NULL case.  I also added an
extra test for this case in gdalautotest/ogr/ogr_shape.py. 

Changes are all in CVS.

comment:2 by rengelkemeir@…, 18 years ago

Frank's fix takes care of the problem.
Note: See TracTickets for help on using tickets.