GDAL/OGR 2.0.2 Release Notes

The 2.0.2 release is a bug fix release.


  • Fix linking error with MSVC_VER=1900 (VS 2015) (#6255)


  • Add pkg-config support for libkml fork, in addition to the old detection method. The libkml/libkml fork on GitHub? supports pkg-config and no longer includes the third_party libraries. (#6077)
  • gdalserver.c: Add include of signal.h for SIGPIPE and signal() (#6193)
  • fix detection of FreeXL on MinGW/MSYS (#6330)


  • CPLGetValueType(): improve heuristics to avoid detecting some WKB strings as real numbers (#6128)
  • Fix CPLGetValueType() to recognize D1 as a string and not a real number (#6305)
  • /vsistdout/: flush when closing the handle (#6149)
  • CPLFormFilename(): use '/' directory separator on Windows on /vsicurl_streaming/ files (#6310)


  • Fix memory leaks if GDALAllRegister is not called (#6139)
  • Make private member of GDALDataset really opaque so as to be able to extend it without breaking the C++ ABI (#6163)
  • Avoid deadlock when writing 2 datasets in 2 threads (#6163)
  • Block cache: fix excessive memory consumption when dealing with datasets with different block sizes (#6226)
  • Fix leak in GetMetadataItem?() on GDALProxyPoolDataset (#6238)
  • MDReader: do no attempt reading side-car files on /vsisubfile/ (#6241)
  • Fix potential buffer overflow in PamHistogramToXMLTree() (#6266)

GDAL Algorithms

  • Warp: avoid really excessive processing time for some warping with target areas completely off the source raster (especially when involving RPC) (#6182)


  • ogr2ogr: prevent from the gt setting to override transaction group size of 1 set by skipfailures earlier (#2409)
  • ogr2ogr: fix -skip mode to rollback current transaction in case of failed insertion (#6328)
  • fix to run with GDAL 2.0 gdal.InvGeoTransform?() signature (#6173)
  • gdaladdo: emit error message if passed an invalid dataset name (#6240)
  • gdalwarp: fix -srcnodata to not put garbage values as target dstnodata (#6315)

GDAL drivers

BSB driver:

  • remove broken and useless logic to deal with extension lines in headers (#6307)

ECRG driver:

  • fix base34 decoding and Windows filename handling (#6271)

GTiff driver:

  • [2.0 regression] fix problem with implicit overviews of JPEG-compressed files (#6308)
  • fix potential memleak in GTiffDataset::GetJPEGOverviewCount() (#6318)
  • call XTIFFInitialize() in LibgeotiffOneTimeInit?() as the former isn't thread-safe, so better call it from the later which is thread-safe (#6163)
  • fix writing other angular units than degree (namely arc-second, arc-minute, grad, gon and radian) (#6171)
  • fix reading angular unit value for angular units than degree (#6171)
  • do not use VirtualMemIO optimization on compressed /vsimem/ files (#6195)
  • fix DirectIO() mode with complex types and inverted endianness (#6198)
  • correctly set GTRasterTypeGeoKey=RasterPixelIsPoint? if AREA_OR_POINT=Point but there is no SRS set (#6225)
  • do not read large 'one row' JBIG compressed files with the scanline API (#6264)
  • fix SetMetadata?() to properly clear existing PAM metadata (complement to #5807)
  • prevent potential out of bounds read to TIFFTAG_EXTRASAMPLES (#6282)
  • do not use first directory as potential mask, to avoid assertion in GTiffDataset::SetDirectory?() (#6287)
  • reject files with strips/tiles/scanlines bigger than 2 GB to avoid 32 bit integer overflow. Also in case of files with Contig PlanarConfiguration? do not make reading one block for band 2 OK when reading for band 1 issued an error (#6288)

GPKG driver:

  • fix various issues in update scenarios when interacting with the GDAL block cache that could result in lost/corrupted band data to be written in tiles (#6309)
  • fix potential use of freed sqlite temporary DB handle when generating overviews with partial tiles (#6335)

HFA driver:

  • fix crash when nNumRuns = 0 with RLE compression (#6208)
  • avoid potential out-of-bounds buffer write (#6286)

KMLSuperoverlay driver:

  • [2.0 regression] fix errors happening with some RasterIO() requests involving resampling (#6311)

netCDF driver:

  • fix one byte heap write overflow in NCDFTokenizeArray() (#6231)
  • fix potential buffer overflows with uses of nc_inq_varname(), nc_inq_attname() and nc_get_att_text() (#6227)
  • validate that gridmapping:GeoTransform has 6 values (#6244)
  • NCDFIsGDALVersionGTE(): validate content of NC_GLOBAL#GDAL variable (#6245)

NITF driver:

  • fix TRE parser to properly deal with variable length items not in first nesting level, such as ENGRDA (not added in nitf_spec.xml in this changeset) (#6285)

PDF driver:

  • correctly take into account non-meter linear units with OGC BP encoding, and add support for US FOOT (#6292)

PDS driver:

  • change default values of PDS_SampleProjOffset_Shift and PDS_LineProjOffset_Shift to 0.5 (#5941)

USGSDEM driver:

VICAR driver:

  • change PDS_SampleProjOffset_Shift and PDS_LineProjOffset_Shift default values to 0.5 (#5941)
  • VICARKeywordHandler::Ingest(): fix potential buffer overflows (#6256)
  • be robust to truncated files (#6321)

VRT driver:

  • serialize NODATA and NoDataValue? items with %.16g, e.g. so as to be able to hold large int32 nodata values (#6151)
  • VRT raw: don't truncate last figure of ImageOffset? if there are left space padding (#6290)

WMS driver:

XPM driver:

  • fix vulnerabilities in reading (#6253)

OGR core


  • morphFromESRI(): map Mercator_Auxiliary_Sphere to EPSG:3857 (#5924)
  • morphFromESRI(): special case with PROJCS name 'WGS_84_Pseudo_Mercator' (#6134)
  • OSR C API: fix declarations of OSRSetAxes() and OSRSetWagner(), and add missing OSRSetHOMAC(), OSRSetMercator2SP() and OSRSetTPED() (#6183)

OGR drivers

CSV driver:

  • Make OGRCSVLayer::CreateGeomField?() returns OGRERR_NONE in case of success instead of OGRERR_FAILURE (#6280)

GeoJSON driver:

  • [2.0 regression] fix crash on null / non-json object features (#6166)
  • make sure there's enough space to write the FeatureCollection? bbox (#6262)

GML driver:

GPX driver:

  • [2.0 regression] fix crash when parsing a 'time' extension element at route/track level (#6237)

ILI driver:

  • Support for Surface polygon rings spread over multiple geometry records (#5099)

MITAB driver:

  • add support for block sizes other than 512 bytes in .map files, for MapInfo? 15.2 compatibility (#6298)
  • read MID files with TAB delimiter and empty first field (#5405)
  • use projection code 29 when exporting non-Polar Lambert Azimuthal Equal Area (#5220)
  • fix segfault when parsing a Region 0 (#6273)
  • TABPolyline::ReadGeometryFromMIFFile(): fix segfaults on invalid geometries (#6273)
  • TABRectangle::ReadGeometryFromMIFFile(): fix crash on malformed ROUNDRECT (#6273)

MSSQLSpatial driver:

  • do not treat a primary key that is not of integer type as the FID (#6235)

NTF driver:

  • fix potential buffer overflows when reading too short lines (#6277)

OpenFileGDB driver:

PG driver:

  • fix memleak in ExecuteSQL() (#6179)
  • avoid reseting error potentially emitted by ExecuteSQL() (#6194)

PGDump driver:

  • fix issue with case of ogc_fid field in case the FID layer creation option is not set by user or by ogr2ogr (related to #6232)

Shape driver:

  • fix REPACK crash on shapefile without .dbf (#6274)
  • fix crash on MultiLineStringM shapes that have no M component (#6317)

VRT driver:

  • fix editing with 'direct' geometry mode which could cause attribute column to be empty (#6289)

SWIG Language Bindings

Perl bindings:

  • Fix incorrect signature in "shadow" feature of Geo::OGR::Feature new (#6181)
  • Add missing osr.t to MANIFEST. Update Makefile.PL to the one in CPAN version.

Java bindings:

  • GNUmakefile: add support for all hardening buildflags (#5998)
Last modified 5 years ago Last modified on Jan 26, 2016, 7:21:02 AM