Skip to content

Commit 96a8bd6

Browse files
committed
Fix ticket #5584 (crash saving empty geometry)
1 parent f47d820 commit 96a8bd6

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

src/providers/ogr/qgsogrprovider.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -566,7 +566,7 @@ void QgsOgrProvider::loadFields()
566566
}
567567

568568
mAttributeFields.append(
569-
QgsField(
569+
QgsField(
570570
//TODO: fix this hack
571571
#ifdef ANDROID
572572
OGR_Fld_GetNameRef( fldDef ),
@@ -757,13 +757,15 @@ bool QgsOgrProvider::addFeature( QgsFeature& f )
757757
unsigned char* wkb = f.geometry()->asWkb();
758758
OGRGeometryH geom = NULL;
759759

760-
if ( OGR_G_CreateFromWkb( wkb, NULL, &geom, f.geometry()->wkbSize() ) != OGRERR_NONE )
760+
if ( wkb )
761761
{
762-
pushError( tr( "OGR error creating wkb for feature %1: %2" ).arg( f.id() ).arg( CPLGetLastErrorMsg() ) );
763-
return false;
762+
if ( OGR_G_CreateFromWkb( wkb, NULL, &geom, f.geometry()->wkbSize() ) != OGRERR_NONE )
763+
{
764+
pushError( tr( "OGR error creating wkb for feature %1: %2" ).arg( f.id() ).arg( CPLGetLastErrorMsg() ) );
765+
return false;
766+
}
767+
OGR_F_SetGeometryDirectly( feature, geom );
764768
}
765-
766-
OGR_F_SetGeometryDirectly( feature, geom );
767769
}
768770

769771
const QgsAttributes& attrs = f.attributes();

0 commit comments

Comments
 (0)