| 1 | = GDAL/OGR 2.4.1 Release Notes = |
| 2 | |
| 3 | The 2.4.1 release is a bug fix release. |
| 4 | |
| 5 | == Build == |
| 6 | |
| 7 | Unix: |
| 8 | * Fix build with OpenBSD which doesn't support RLIMIT_AS (#1163) |
| 9 | * fix build --without-lerc (#1224) |
| 10 | * configure: fix netcdf_mem.h detection in netcdf 4.6.2 (#1328) |
| 11 | |
| 12 | Windows: |
| 13 | * Fix build issue for builds without curl (#1251) |
| 14 | * nmake.opt: remove unicode character at line starting with '# 4275' that apparently cause build issues with some MSVC versions (#1169) |
| 15 | |
| 16 | All: |
| 17 | * Poppler: revision version management. Drop support for ancient versions older than 0.23.0 |
| 18 | * Add support for Poppler 0.72.0 and 0.73.0 (#1207, #1208) |
| 19 | |
| 20 | == Port == |
| 21 | |
| 22 | * cpl_vsi.h: fix include for C use |
| 23 | * VSICurlHandle::ReadMultiRange(): use default implementation if there is a single range. May help to improve performance for #1206 |
| 24 | * VSIGZipWriteHandleMT: avoid potential deadlock in case of error |
| 25 | * /vsihdfs/: fix Read() when more than one hdfsRead call is needed (#1349) |
| 26 | |
| 27 | == GDAL utilities == |
| 28 | |
| 29 | * gdalwarp -crop_to_cutline: do not round computed target extent to be aligned on the grid of the source raster if -tr is set (restore partially pre 2.4 behaviour) (#1173) |
| 30 | * gdalwarp: assume -tap when using -crop_to_cutline, -tr and -wo CUTLINE_ALL_TOUCHED=TRUE, so as to avoid issues with polygons smaller than 1x1 pixels (#1360) |
| 31 | * gdal2tiles: give local tile layer and basemap layers same min/max zoom levels as generated tile cache (#1074) |
| 32 | * gdal2tiles: fix breakage of openlayers.html getURL() javascript function, introduced in GDAL 2.3.3 / 2.4.0 (#1127) |
| 33 | * gdal2tiles: prevent accidental copy of full GeoTIFF into temporary .vrt file |
| 34 | * Fix double-free in StripIrrelevantOptions() (triggered by gdalinfo / ogrinfo --format) |
| 35 | * gdal_retile.py: use nodata value from origin dataset |
| 36 | |
| 37 | == GDAL algorithms == |
| 38 | |
| 39 | * rasterize: fix crash when working buffer is larger than 2GB (#1338) |
| 40 | |
| 41 | == GDAL drivers == |
| 42 | |
| 43 | COSAR driver: |
| 44 | * avoid out-of-bound write on corrupted dataset. Fixes OSS Fuzz #12360 |
| 45 | |
| 46 | GTiff driver: |
| 47 | * only report scale/offset deduced from ModelTiepointTag and ModelPixelScaleTag if the SRS has a vertical component (and thus currently if GTIFF_REPORT_COMPD_CS is set) (https://issues.qgis.org/issues/20493) |
| 48 | * Lerc codec: properly initialize state after Create() so that BuildOverviews() succeed (#1257) |
| 49 | |
| 50 | KMLSuperOverlay driver: |
| 51 | * report color table of single overlay datasets, and also handle some variation in the KML structure (https://issues.qgis.org/issues/20173) |
| 52 | |
| 53 | JPEG driver: |
| 54 | * fix GDAL 2.3.0 performance regression when decoding JPEG (or GPKG using JPEG) images (#1324) |
| 55 | |
| 56 | netCDF driver: |
| 57 | * fix crash when opening a dataset with an attribute of length 0 (#1303) |
| 58 | |
| 59 | PDSv3 driver: |
| 60 | * fix decoding of band interleaved images (such as for CRISM HSP) (#1239) |
| 61 | |
| 62 | XPM driver: |
| 63 | * fix read heap buffer overflow on corrupted image. Fixes OSS Fuzz #13455 |
| 64 | |
| 65 | == OGR core == |
| 66 | |
| 67 | * Polyhedral surface: fix importFromWKT to properly fix Z/M flag |
| 68 | * OGRGeometryFactory::GetCurveParmeters(): fix assertion when coordinates are very near 0 (relates to OSS Fuzz #13408) |
| 69 | * OGRLineString::segmentize(): fix issues when segment length is divisible by maxlength (#1341) |
| 70 | |
| 71 | == OGRSpatialReference == |
| 72 | |
| 73 | * Coordinate transformation: do not apply +towgs84 if it is present only in one one of the CRS, when using PROJ >= 5 (#1156) |
| 74 | |
| 75 | == OGR drivers == |
| 76 | |
| 77 | CSW driver: |
| 78 | * fix crash when geometry parsing fails (#1248) |
| 79 | |
| 80 | DXF driver: |
| 81 | * fix double-free issue in case of writing error. Fixes OSS Fuzz #13516 |
| 82 | |
| 83 | Elasticsearch driver: |
| 84 | * Fix index comparison bug when a index have at least one mapping |
| 85 | |
| 86 | GeoJSON driver: |
| 87 | * speed-up random reading with GetFeature() to retrieve performance similar to GDAL 2.2 or before (https://issues.qgis.org/issues/21085) |
| 88 | |
| 89 | GeoPackage driver: |
| 90 | * allow srs_id with negative values |
| 91 | |
| 92 | GML driver: |
| 93 | * write SRSName element in .gfs when parsing a GML file with srsName only on top-level boundedBy element (#1210) |
| 94 | * Add "FeatureType" to list of suffixes recognized by XSD parser for compatibility with schemas produced by ArcGIS Server |
| 95 | * Fix assertion in CPLGetValueType when testing non-ASCII chars |
| 96 | |
| 97 | MITAB driver: |
| 98 | * .tab: fix deleting a feature without geometry (#1232) |
| 99 | * adapt dynamically default projection bounds to false_easting/false_northing values (#1316) |
| 100 | * avoid potential assertion or stack buffer overflow on corrupted .ind files. Fixes OSS Fuzz #11999. |
| 101 | * prevent potential infinite recursion on broken indexes. Fixes OSS Fuzz #12739. |
| 102 | |
| 103 | MSSQLSpatial driver: |
| 104 | * Add option to expose the FID column as a feature attribute (#1227) |
| 105 | |
| 106 | ODS driver: |
| 107 | * allow opening tables with empty cells with huge values of columns-repeated attribute at end of line (#1243) |
| 108 | * aavoid potential null pointer dereference when writing to corrupted filename. Fixes OSS Fuz #12976. |
| 109 | |
| 110 | PDF driver: |
| 111 | * avoid division by zero when generating from vector content whose bounding box is almost a horizontal or vertical line. Fixes OSS Fuzz #13408 |
| 112 | |
| 113 | PGDump driver: |
| 114 | * emit correct SQL statement when UNLOGGED=ON |
| 115 | |
| 116 | Selafin driver: |
| 117 | * avoid null pointer dereference on corrupted files. Fixes OSS Fuzz #12356 |
| 118 | |
| 119 | VFK driver: |
| 120 | * fix regression where curved geometries were ignored (#1351) |
| 121 | |
| 122 | == Python bindings == |
| 123 | |
| 124 | * fix Dataset.ReadAsRaster() on CInt16 data type (#1186) |