= GDAL/OGR 3.0.2 Release Notes = The 3.0.2 release is a bug fix release. == Misc == * Replace a few catch of bad_alloc by exception to handle the case of 32 bit trying to allocate more than 4GB of memory and thus throwing a length_error exception. Found by OSS Fuzz * Fix issues with thread_local and C++ objects that don't work well with DLL on Windows * Fix build against Poppler 0.82 == Port == * /vsicrypt/: fix memleak in error code path * /vsitar/: accept space as end of field terminator == GDAL core == * fix non-neareset resampling over nodata blocks ([https://github.com/OSGeo/gdal/issues/1941 #1941]) == GDAL utilities == * gdalwarp: adjust nodata values, passed with -srcnodata/-dstnodata, and close to FLT_MAX to exactly it ([https://github.com/OSGeo/gdal/issues/1724 #1724]) * Python scripts: GetOutputDriverFor(): fixes error when multiple drivers found ([https://github.com/OSGeo/gdal/issues/1719 #1719]) == GDAL drivers == BAG driver: * calculate the northeast pixel corner rather than scaling the resolution, due to an incorrectly shifted northeast corner in some CARIS surveys ([https://github.com/OSGeo/gdal/issues/1728 #1728]) CTable2Dataset driver: * SetGeoTransform(): fix read buffer overflow from stack DAAS driver: * accept 4-band RGBA PNG response even when a single band is requested ENVI driver: * preserve 'byte order' on update ([https://github.com/OSGeo/gdal/issues/1796 #1796]) FITS driver: * fix memory leaks GTiff driver: * fix memory leak with -co APPEND_SUBDATASET=YES * ensure GDAL PROJ context is used for all libgeotiff functions (requires internal libgeotiff / libgeotiff 1.6) * make sure that GetMetadataDomainList() doesn't return EXIF when there's no EXIF metadata (https://github.com/mapbox/rasterio/pull/1740#issuecomment-526660946) * GTIFGetOGISDefn: avoid querying UOM length info when it is KvUserDefined to avoid an error to be emitted * Internal libtiff: backport security related fixes HDF5 and netCDF drivers: * fix crash when reading attributes of type string of variable length with NULL values IGNFHeightASCIIGrid driver: * fix to read RASPM2018.mnt grid JP2KAK driver: * fix issue with multi-threaded reads JP2OpenJPEG driver: * fix error logic in multi-threaded code causing memory corruption * fix reading overviews, when tiled API is used, and the dimensions of the full resolution image are not a multiple of 2^numresolutions ([https://github.com/OSGeo/gdal/issues/1860 #1860]) * fix to return the proper number of bytes read when we read more than 2 GB at once (https://github.com/uclouvain/openjpeg/issues/1151) JPEG driver: * fix further calls to RasterIO after reading full image at full resolution ([https://github.com/OSGeo/gdal/issues/1947 #1947]) MRF driver: * do not hardcode GDAL internal zlib header netCDF driver: * Allow "radian" value for the X/Y axis units PDF driver: * PDF composer from XML: fix wrong use of SetupVectorGeoreferencing() * fix nullptr dereferences on corrupted files (OSS Fuzz #16438, #16558, #16759) * fix potential heap buffer overflow (OSS Fuzz #16546) * avoid potential integer division by zero (OSS Fuzz #17129) PDS4 driver: * support reading a_axis_radius and c_axis_radius ([https://github.com/OSGeo/gdal/issues/1851 #1851]) SAFE driver: * avoid potential use-after-free (Coverity 1404037 and 1404140) Terragen driver: * avoid potential use-after-free on error code path in write_header() (Coverity 1404060) USGSDEM driver: * avoid int overflow. Fixes OSS Fuzz #15715 * fix reading FEMA generated Lidar datasets whose header is 918 bytes large VRT driver: * avoid erroneous pixel request do be done with KernelFilteredSource == OGR core == * OGRExpatRealloc(): fix double-free when size to allocate is above the default 10MB threshold. OSS Fuzz #16178 / CVE-2019-17545 * OGR SQLite: do not propagate 'IS / IS NOT value' constructs to OGR SQL * OGRSimpleCurve::setNumPoints(): avoid potential int overflow on 32 bit on big values of nNewPointCount. OSS Fuzz #18092 * OGRSimpleCurve::getPoints() with XYZM: fix wrong stride used for M array * OGRSimpleCurve: fix reversePoints() and addSubLineString() to take into account M dimension == OGR drivers == CAD driver: * libopencad: CADBuffer: replace m_guard by m_nSize to avoid pointer wrap around on 32 bit platforms on corrupted files. OSS Fuzz #16388 DGN driver: * avoid size_t overflow / illegal memory access. OSS Fuzz #16393 GeoJSON driver: * fix update of file on Windows (https://github.com/qgis/QGIS/issues/28580) * add a OGR_GEOJSON_MAX_OBJ_SIZE configuration option to be able to parse jumbo GeoJSON Features. GPX driver: * fix memory leak when streaming to /vsistdout/ LIBKML driver: * make it accept /vsigzip/foo.kml.gz files ([https://github.com/OSGeo/gdal/issues/1743 #1743]) * fix potential memory leak. (Coverity 1404148) MITAB driver: * Update WindowsLatin2 definition ([https://github.com/OSGeo/gdal/issues/1571 #1571]) * fix potential double-free (Coverity 1404224) * avoid potential nullptr deref (Coverity 1404174) PDF driver: * fix reading polygon with holes and Bezier curves ([https://github.com/OSGeo/gdal/issues/1932 #1932]) * fix reading strings with escape sequences PostgreSQL driver: * add support for PostgreSQL 12 ([https://github.com/OSGeo/gdal/issues/1692 #1692]) * be more restrictive when deducing non-nullability of columns in SQL result layers ([https://github.com/OSGeo/gdal/issues/1734 #1734]) Selafin driver: * temptative fix for stack read overflow of OSS Fuzz #18342 S57 driver: * s57objectclasses.csv: add missing TXTDSC attribute for DRYDOC class ([https://github.com/OSGeo/gdal/issues/1723 #1723]) XLSX driver: * add support for .xlsm extension WFS3/OAPIF driver: * correctly handle user query string parameters in connection URL ([https://github.com/OSGeo/gdal/issues/1710 #1710]) * align with the final state of the OGC API - Features : Core 1.0 spec ([https://github.com/OSGeo/gdal/issues/1878 #1878]) == Python bindings == * add compatibility with SWIG 4.0 ([https://github.com/OSGeo/gdal/issues/1702 #1702]) * Fix swig python wheel on darwin