| 1 | = GDAL/OGR 2.1.4 Release Notes = |
| 2 | |
| 3 | The 2.1.4 release is a bug fix release. |
| 4 | |
| 5 | == Build == |
| 6 | * configure: remove bashism (#6791) |
| 7 | * configure: fix --without-mrf (#6811) |
| 8 | * Add HDF4_INCLUDE option to MSVC builds (#6805) |
| 9 | * DWG: fix compilation problems (#6843) |
| 10 | * configure: fix detection of 64bit file API with clang 5 (#6912) |
| 11 | * configure: use .exe extension when building with mingw64* toolchains (#6919) |
| 12 | * mongoDB: compilation fix on Windows |
| 13 | |
| 14 | == Port == |
| 15 | |
| 16 | * CPLSerializeXMLNode(): fix potential buffer overflow (#6851) |
| 17 | */vsicurl/: fix occasional inappropriate failures in Read() with some combinations of initial offset, file size and read request size (#6901) |
| 18 | |
| 19 | == Algorithms == |
| 20 | |
| 21 | * gdal_rasterize: fix crash when rasterizing empty polygon (#6844) |
| 22 | * GDALRasterize(): avoid hang in some cases with all_touched option (#5580) |
| 23 | |
| 24 | == GDAL utilities == |
| 25 | |
| 26 | * Man pages: remove redundant utility name (#6822) |
| 27 | * gdaldem: backport r37897 (#6847) |
| 28 | * gdalwarp: fix crash when -multi and -to RPC_DEM are used together (#6869) |
| 29 | |
| 30 | == GDAL drivers == |
| 31 | |
| 32 | AIGRID driver: |
| 33 | * fix handling on raw 32-bit AIG blocks (#6886) |
| 34 | |
| 35 | DTED driver: |
| 36 | * correctly create files at latitudes -80, -75, -70 and -50 (#6859) |
| 37 | |
| 38 | GeoRaster driver: |
| 39 | * support for JP2-F compression (#6861) |
| 40 | * support direct loading of JPEG-F when blocking=no (#6861) |
| 41 | * default blocking increased from 256x256 to 512x512 (#6861) |
| 42 | * fix handling of memory allocation failure (#6884) |
| 43 | |
| 44 | OpenJpeg driver: |
| 45 | * support direct extracting of GeoRaster JP2-F BLOB (#6861) |
| 46 | |
| 47 | GPKG driver: |
| 48 | * set matrix_width/matrix_height in gpkg_tile_matrix in conformance with req 45 (#6826) |
| 49 | * avoid corruption of gpkg_tile_matrix when building overviews, down to a level where they are smaller than the tile size (#6932) |
| 50 | |
| 51 | GTiff driver: |
| 52 | * map D_North_American_1927 datum citation name to OGC North_American_Datum_1927 so that datum is properly recognized (#6863) |
| 53 | |
| 54 | Idrisi driver: |
| 55 | * make Create() zero-initialize the .rst file (#6873) |
| 56 | |
| 57 | MBTiles driver: |
| 58 | * on opening if detecting 3 bands, expose 4 bands since there might be transparent border tiles (#6836) |
| 59 | |
| 60 | netCDF driver: |
| 61 | * fix crash on int64/uint64 dimensions and variables, and add support for them (#6870) |
| 62 | |
| 63 | NWT_GRC driver: |
| 64 | * Fix handling of alpha values in GRC color table (#6905) |
| 65 | |
| 66 | SRTMHGT driver: |
| 67 | * handle files for latitude >= 50 (#6840) |
| 68 | |
| 69 | VRT driver: |
| 70 | * fix 2.1 regression that can cause crash in VRTSimpleSource::GetFileList() (#6802) |
| 71 | |
| 72 | WMTS driver: |
| 73 | * accept tiles of small dimensions (https://github.com/OSGeo/gdal/pull/210) |
| 74 | |
| 75 | == OGR core == |
| 76 | |
| 77 | * OGR SQL: fix IN filtering on MapInfo indexed columns (2.0 regression, #6798) |
| 78 | * Fix issue when getting MULTIPOINT(0 0,1 1) envelope (#6841) |
| 79 | * OGRPolygon: make IsEmpty() return TRUE if the polygon is made of an empty ring (#6844) |
| 80 | * OGRParse: fix parsing logic to avoid false positive detection of string as datetime (#6867) |
| 81 | |
| 82 | == OGR utilities == |
| 83 | |
| 84 | * ogr2ogr/GDALVectorTranslate(): fix crash when using -f PDF -a_srs (fixes #6920) |
| 85 | |
| 86 | == OGR drivers == |
| 87 | |
| 88 | Amigocloud driver: |
| 89 | * backport part of change of trunk r36639 that should have been backported in 2.1 in r36640 but was missed for some reason (https://github.com/OSGeo/gdal/pull/137) |
| 90 | |
| 91 | GeoJSON driver: |
| 92 | * ESRIJson: avoid endless looping on servers that don't support resultOffset (#6895) |
| 93 | |
| 94 | GPKG driver: |
| 95 | * make GetFeature() works on non conformant tables that have no integer primary key field (#6799), and be robust to non standard column types |
| 96 | * GPKG: declare feature id column of features tables and tile pyramid user data tables as NOT NULL (#6807, relates to https://github.com/opengeospatial/geopackage/issues/282) |
| 97 | * GPKG/SQLite: fix ExecuteSQL() to work with a statement with 2 SELECT and ORDER BY clause (#6832) |
| 98 | * GPKG: make driver robust to difference of cases between table_name in gpkg_contents/gpkg_geometry_columns and name in sqlite_master (#6916) |
| 99 | |
| 100 | ILI2 driver: |
| 101 | * assign FID to features (#6839) |
| 102 | |
| 103 | LIBKML driver: |
| 104 | * emit style related errors as warnings to make datasets openable by SWIG bindings (#6850) |
| 105 | |
| 106 | OCI driver: |
| 107 | * support for long identifiers (up to 128 long) when running of 12.2 or + (#6866) |
| 108 | |
| 109 | ODS driver: |
| 110 | * fix FID filtering (#6788) |
| 111 | |
| 112 | OpenFileGDB driver: |
| 113 | * fix bug when field description offset is beyond 4GB (#6830) |
| 114 | |
| 115 | PG driver: |
| 116 | * avoid errors with field default expressions like 'foo'::text (#6872) |
| 117 | |
| 118 | == Java bindings == |
| 119 | |
| 120 | * Fix crash on GetDefaultHistogram() if the C++ method returns an error (#6812) |
| 121 | |
| 122 | == Perl bindings == |
| 123 | |
| 124 | * Backport r37220 for fixing #6796 |
| 125 | * Backport r37222 |
| 126 | |
| 127 | == Python bindings == |
| 128 | |
| 129 | * fix 'import osgeo.gdal_array' with python3 and SWIG 3.0.10 (#6801) |
| 130 | * allow gdal.FileFromMemBuffer() to use buffer > 2GB (fixes #6828) |
| 131 | |
| 132 | == Security oriented fixes == |
| 133 | |
| 134 | Note: this is only a very partial backport of more extensive fixes done in GDAL trunk. Credit to OSS-Fuzz for all of them (some have been found locally, so no related ticket) |
| 135 | |
| 136 | * Fix CPLErrorSetState to ensure it does not write beyond DEFAULT_LAST_ERR_MSG_SIZE and correctly null-terminates last message. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1529. |
| 137 | * OpenAIR: fix potential out-of-buffer read if we need to ingest 30000 bytes. Credit to OSS Fuzz |
| 138 | * GDALDataset and GDALRasterBand::ReportError(): fix crash if dataset name has a % character |
| 139 | * NASAKeywordHandler::SkipWhite(): fix out of bounds read |
| 140 | * MITAB: ParseTABFileFields(): fix out of bounds read |
| 141 | * MITAB: avoid potentially veryyyy long loop when stroking arcs. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1644 |
| 142 | * MITAB: avoid heap-buffer-overflow in MITABCoordSys2TABProjInfo(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1653 |
| 143 | * DXF: prevent null ptr deref on corrupted file |
| 144 | * DXF: fix out-of-bounds read on corrupted files |
| 145 | * DXF: fix memory leak in case of corrupted file |
| 146 | * KML::unregisterLayerIfMatchingThisNode(): use memmove() instead of memcpy(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=158 |
| 147 | * KML: fix crash on weird structure with recursively empty folders. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1591 |
| 148 | * KML: fix null ptr dereference on corrupted file. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1634 |
| 149 | * OGRCurveCollection::importBodyFromWkb(): fix potential crash if the curve in the collection has not the same dimension has the collection dimension. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1584 |
| 150 | * TIGER: fix potential stack buffer overflow. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1586 |
| 151 | * VFK: avoid out-of-bounds read. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1596 |
| 152 | * VFK: fix out-of-bounds read. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2074 |
| 153 | * CPLHexToBinary(): avoid reading outside of hex2char array on on-ASCII input. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1606 |
| 154 | * OGR PDS: avoid int32 overflow. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1607 |
| 155 | * GeoRSS: fix null pointer dereference on corrupted files. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1611 |
| 156 | * VSIArchiveFilesystemHandler::SplitFilename(): improve performance. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1597 |
| 157 | * OGRGeometryFactory::organizePolygons(): fix crash on empty polygons. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1620 |
| 158 | * JML: fix null pointer dereference on invalid files. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1622 |
| 159 | * Shape: prevent null ptr deref on truncated MultiPointM geometry. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1638 |
| 160 | * /vsisubfile/: avoid Tell() to return negative values. And make VSIIngestFile() more robust to unsigned overflow. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1642 |
| 161 | * GTM: avoid useless recursive opening of files when provided with a gzip-compressed input. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1650 |
| 162 | * GTiff: fix heap-buffer-overflow. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1677 |
| 163 | * GTiff: avoid heap-buffer-overfow on corrupted State Plane citation. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2050 |
| 164 | * GTiff: avoid potential stack buffer overflow on corrupted Imagine citation. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2105 |
| 165 | * GTiff: prevent heap overflow and fix reading of multi-band band-interleaved 16/24-bit float datasets. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2264 |
| 166 | * GTiff: fix potential infinite loop when parsing some 24-bit float denormalized numbers. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2315 |
| 167 | * Internal libjson-c: fix stack buffer overflow. Submitted upstream as https://github.com/json-c/json-c/pull/325. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1682 |
| 168 | * ILI1/ILI2: fix null pointer dereference when opening filename ','. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1689 |
| 169 | * ILI1: fix various crashes and memleaks on corrupted files (including, but not limited to, https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1760 , 1784, 1926) |
| 170 | * ILI2: use proper cast operator. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1813 |
| 171 | * ILI2: fix crash due to unhandled exception. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2191 |
| 172 | * OGRSpatialReference::morphFromESRI(): fix heap-use-after-free issue. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1690 |
| 173 | * GML / NAS: fix memory leak in error code path, and potential heap-buffer-read-overflow |
| 174 | * morphFromESRI(): prevent potential null pointer dereference. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1783 |
| 175 | * NTF: fix various issues: heap & stack buffer-overflow, null ptr derefs, memory leaks. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1819 , 1820 , 1823, 1833, 1854, 1862, 1910, 1931, 1961, 1982, 1990, 1993, 1995, 1996, 2003, 2033, 2052, 2077, 2084, 2103, 2130, 2135, 2146, 2166, 2185, 2187 |
| 176 | * morphFromESRI(): avoid potential null pointer dereference. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1867 |
| 177 | * GXF: validate nGType to avoid later out-of-bound read in GXFReadRawScanlineFrom(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1975 |
| 178 | * GXF: fix int overflow and avoid excessive memory allocation. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2207 |
| 179 | * TIGER: avoid stack buffer overflows. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2020 |
| 180 | * ISO8211: prevent stack buffer oveflow. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2022 |
| 181 | * VICAR: fix null pointer dereference. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2116 |
| 182 | * GPKG: fix potential heap-buffer overflow in GPkgHeaderFromWKB(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2150 |
| 183 | * GPKG: fix potential null ptr deref. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2240 |
| 184 | * REC: fix potential stack buffer overflow. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2165 |
| 185 | * E00GRID: fix heap buffer overflow. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2182 |
| 186 | * E00GRID: avoid index-out-of-bounds write access. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2237 |
| 187 | * E00GRID: fix index out of bounds access. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2327 |
| 188 | * VICAR: avoid use-after-free and heap-buffer-overflow. Fixes https://oss-fuzz.com/v2/testcase-detail/4825577427042304 |
| 189 | * OGRCompoundCurve::importFromWkb(): avoid potential stack overflow. Fixes https://oss-fuzz.com/v2/testcase-detail/5192348843638784 |
| 190 | * Selafin: fix double frees. Fixes https://oss-fuzz.com/v2/testcase-detail/6429713822121984 |
| 191 | * netCDF: avoid stack buffer overflow. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2302 |