diff --git a/src/providers/ogr/qgsogrprovider.cpp b/src/providers/ogr/qgsogrprovider.cpp index bc6563ce05d..b1f237356e5 100644 --- a/src/providers/ogr/qgsogrprovider.cpp +++ b/src/providers/ogr/qgsogrprovider.cpp @@ -469,9 +469,12 @@ QgsOgrProvider::QgsOgrProvider( QString const &uri ) bool supportsBoolean = false; #if GDAL_VERSION_NUM >= GDAL_COMPUTE_VERSION(2,3,0) - const char *pszDataTypes = GDALGetMetadataItem( mOgrOrigLayer->driver(), GDAL_DMD_CREATIONFIELDDATASUBTYPES, nullptr ); - if ( pszDataTypes && strstr( pszDataTypes, "Boolean" ) ) - supportsBoolean = true; + if ( mOgrOrigLayer ) + { + const char *pszDataTypes = GDALGetMetadataItem( mOgrOrigLayer->driver(), GDAL_DMD_CREATIONFIELDDATASUBTYPES, nullptr ); + if ( pszDataTypes && strstr( pszDataTypes, "Boolean" ) ) + supportsBoolean = true; + } #else if ( mGDALDriverName == QLatin1String( "GeoJSON" ) || mGDALDriverName == QLatin1String( "GML" ) ||