Changes between Initial Version and Version 1 of Release/2.2.2-News


Ignore:
Timestamp:
Sep 15, 2017, 3:40:54 AM (7 years ago)
Author:
Even Rouault
Comment:

Add 2.2.2 news page

Legend:

Unmodified
Added
Removed
Modified
  • Release/2.2.2-News

    v1 v1  
     1= GDAL/OGR 2.2.2 Release Notes =
     2
     3The 2.2.2 release is a bug fix release.
     4
     5== Build ==
     6
     7 * Windows build: always build the PDF driver, even when none of poppler/podofo/pdfium are available, in which case it is write-only (#6938)
     8 * Compilation fixes on Ubuntu 16.04 with explicit --std=c++03 (#6952)
     9
     10== Port ==
     11
     12 * /vsigzip/: make Eof() detect end of stream when receive a Z_BUF_ERROR error. Fixes #6944.
     13 * Fix memleak in VSIGSFSHandler::GetFileList()
     14 * /vsigzip/: avoid trying to write a .gz.properties file on a /vsicurl/ file (#7016)
     15 * Fix registration of /vsicrypt/ file system handler when compiled as a plugin (#7030)
     16 * CPLStrtod(): parse string like '-1.#IND0000000' as NaN instead of -1 (#7031)
     17
     18== Algorithms ==
     19 
     20  * Warper: when operating on single-band, skip target pixels whose source center pixel is nodata (2.2 regression, #7001)
     21  * Warper: avoid blocking when number of rows is 1 and NUM_THREADS > 1 (#7041). Also limit the number of threads so that each one processes at least 65536 pixels
     22
     23== GDAL core ==
     24
     25 * GDALGCPsToGeoTransform(): add GDAL_GCPS_TO_GEOTRANSFORM_APPROX_OK=YES and GDAL_GCPS_TO_GEOTRANSFORM_APPROX_THRESHOLD=threshold_in_pixel configuration option (#6995)
     26 * Fix issue with GDALProxyRasterBand::FlushCache() not flushing everything required (#7040)
     27 * RawDataset::IRasterIO(): don't assume all bands are RawRasterBand
     28
     29== GDAL utilities ==
     30
     31 * gdal2tiles.py: fix GDAL 2.2 regression where tilemapresource.xml was no longer generated (#6966)
     32 * gdal_translate/DefaultCreateCopy(): do not destroy target file in case of failed copy wen using -co APPEND_SUBDATASET=YES (#7019)
     33 * gdal_translate: make -b mask[,xx] use the appropriate band data type (#7028)
     34
     35== GDAL drivers ==
     36
     37GeoRaster driver:
     38 * add support for GCP (#6973)
     39
     40GPKG driver:
     41 * do not error out if extent in gpkg_contents is present but invalid (#6976)
     42 * fix opening subdatasets with absolute filenames on Windows (https://issues.qgis.org/issues/16997)
     43 * fix possible assertion / corruption when creating a raster GeoPackage (#7022)
     44
     45GSAG driver:
     46 * fix reading issue that could cause a spurious 0 value to be read and shift all following values (#6992)
     47
     48GTiff driver:
     49 * fix reading subsampled JPEG-in-TIFF when block height = 8 (#6988)
     50 * when reading a COMPD_CS (and GTIFF_REPORT_COMPD_CS=YES), set the name from the GTCitationGeoKey (#7011)
     51
     52GTX driver:
     53 * do not emit error when opening with GDAL_PAM_ENABLED=NO (#6996)
     54
     55HF2 driver:
     56 * fix reading tiles that are 1-pixel wide (2.1 regression, #6949)
     57
     58IDRISI driver:
     59 * Fix memleak in IDRISI Open()
     60
     61ISIS3 driver:
     62 * make sure that -co USE_SRC_HISTORY=NO -co ADD_GDAL_HISTORY=NO results in remove of History section (#6968)
     63 * fix logic to initialize underlying GeoTIFF file in IWriteBlock(), and implement Fill() (#7040)
     64
     65JPEG2000 driver:
     66 * Fix build failure in C++03 mode on Jasper inclusion in RHEL 6 (#6951)
     67 * Fix build failure with recent Jasper that no longer define uchar
     68
     69JP2OpenJPEG driver:
     70 * Add support for building against OpenJPEG 2.2 (#7002)
     71 * fix performance issues with small images with very small tile size, such as some Sentinel2 quicklooks (#7012)
     72 * properly use the opj_set_decode_area() API (#7018)
     73 
     74netCDF driver:
     75 * avoid vector vs raster variable confusion that prevents reading Sentinel3 datasets, and avoid invalid geolocation array to be reported (#6974)
     76
     77PDF driver:
     78 * add support for Poppler 0.58 (#7033)
     79
     80PDS driver:
     81 * fix parsing of labels with nested list constructs (2.2 regression, #6970)
     82
     83SRTMHGT driver:
     84 * recognizes the .hgt.gz extension (#7016)
     85
     86VRT driver:
     87 * avoid stack buffer read overflow with complex data type and scale = 0. (oss-fuzz#2468)
     88 * fix uninitialized buffer in areas without sources when using non pixel packed spacing (#6965)
     89 * Warped VRT: correctly take into account cutline for implicit overviews; also avoid serializing a duplicate CUTLINE warping options in warped .vrt (#6954)
     90 * Warped VRT: fix implicit overview when output geotransform is not the same as the transformer dst geotransform (#6972)
     91 * fix IGetDataCoverageStatus() in the case of non-simple sources, which unbreaks gdalenhance -equalize (#6987)
     92
     93== OGR core ==
     94
     95 * OGRCompondCurve::addCurveDirectly(): try reversing non contiguous curves (for GML/NAS)
     96 * OGR API SPY: fix the way we map dataset handles to variable name, to avoid invalid reuses of variable still active
     97 * OGRParseDate(): avoid false-positive time detection, in particular for GeoJSON (#7014)
     98 * OGRCurve::get_isClosed(): do not take into account M component (#7017)
     99 * OGRLineString::setPoint() and addPoint() with a OGRPoint* argument. properly takes into account ZM, Z and M dimensions (#7017)
     100 
     101== OGRSpatialReference ==
     102
     103 * Fix OGRSpatialReference::IsSame() to return FALSE when comparing EPSG:3857 (web_mercator) and EPSG:3395 (WGS84 Mercator) (#7029)
     104 * importFromProj4(): implement import of Hotine Oblique Mercator Two Points Natural Origin, and fix OGRSpatialReference::Validate() for that formulation (#7042)
     105 
     106== OGR utilities ==
     107
     108 * ogr2ogr: fix small memory leak when using -limit switch
     109 * ogr2ogr: make -f GMT work again (#6993)
     110
     111== OGR drivers ==
     112
     113AVCBin driver:
     114 * fix 2.1 regression regarding attributes fetching (#6950)
     115
     116DXF driver:
     117 * fix reading files where INSERT is the last entity and DXF_MERGE_BLOCK_GEOMETRIES is false (#7006)
     118 * avoid segfault when creating a DXF file with only the 'blocks' layer (#6998)
     119 * fix potential null pointer dereference in PrepareLineStyle (#7038)
     120
     121GeoJSON driver:
     122 * fix 2.2 regression regarding lack of setting the FeatureCollection CRS on feature geometries (fixes https://github.com/r-spatial/sf/issues/449#issuecomment-319369945)
     123 * prevent infinite recursion when reading geocouch spatiallist with properties.properties.properties (#7036)
     124
     125GML driver:
     126 * fix field type detection logic to avoid a field with xsi:nil=true to be identified as a string (#7027)
     127 * JPGIS FGD v4: fix logic so that coordinate order reported is lon/lat (https://github.com/OSGeo/gdal/pull/241)
     128 
     129GMLAS driver:
     130 * fix memleak in swe:DataRecord handling
     131 * avoid false-positive warning about attribute found in document but ignored according to configuration, when the attribute is actually not present in the document but has a default value (#6956)
     132 * (quick-and-not-prefect) fix to avoid a <xs:any> to prevent all other fields from being set (#6957)
     133 * get the srsName when set on the srsName of the gml:pos of a gml:Point (#6962)
     134 * CityGML related fixes: better take into account .xsd whose namespace prefix is not in the document, fix discovery of substitution elements, handle gYear data type (#6975)
     135
     136GPKG driver:
     137 * fix feature count after SetFeature() with sqlite < 3.7.8 (#6953)
     138 * do not take into account gpkg_contents for the extent of vector layers when it is present but invalid (#6976)
     139 * fix logic to detect FID on SQL result layer when several FID fields are selected (#7026)
     140
     141KML / LIBKML drivers:
     142 * read documents with an explicit kml prefix (#6981)
     143
     144MSSQLSpatial driver:
     145 * fix issues on x64 (#6930)
     146 * properly format DELETE statement with schema (#7039)
     147
     148OCI driver:
     149 * check view with unquoted table name (#5552)
     150
     151OpenFileGDB driver:
     152 * properly read GeneralPolygon with M component whose all values are set to NaN (#7017)
     153
     154OSM driver:
     155 * increase string buffer for osm XML files (#6964)
     156
     157Shapefile driver:
     158 * use VSIStatL() in Create() to properly work with /vsimem/ directories (#6991)
     159 * fix regression affecting GDAL 2.1.3 or later, 2.2.0 or later, when editing the last shape of a file and growing it, and then appending a new shape, which resulted in corruption of both shapes (#7031)
     160
     161SQLite/Spatialite driver:
     162 * escape integer primary key column name on table creation (#7007)
     163
     164== C# bindings ==
     165
     166 * Implement RasterIO extensions (#6915)
     167
     168== Python bindings ==
     169
     170 * fix reference count issue on gdal.VSIStatL() when it returns None, that can cause Python crashes if None refcount drops to zero
     171 * add C-API to create driver instances for use in SWIG (https://trac.osgeo.org/osgeo4w/ticket/466)
     172 
     173== Security oriented fixes ==
     174
     175Note: this is only a very partial backport of more extensive fixes done in GDAL trunk. Credit to OSS-Fuzz for all of them. (oss-fuzz#XXXX is a shortcut to
     176https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=XXXX)
     177
     178* NAS: avoid assertion / null ptr deref and possibly other failures on corrupted files. (oss-fuzz#2366, oss-fuzz#2580)
     179* NTF: avoid null ptr deref. Related to https://oss-fuzz.com/v2/testcase-detail/6527758899347456
     180* VSIMemHandle::Read(): avoid unwanted unsigned int overflow that cause a later heap buffer overflow. Fixes https://oss-fuzz.com/v2/testcase-detail/5227283000328192.
     181* MBTiles: fix use after free. (oss-fuzz#2388)
     182* netCDF: fix stack buffer overflow when building vector layers from netCDF variables if they don't have the expected number of dimensions. (oss-fuzz#2400)
     183* DXF: prevent infinite loop / excessive memory allocation on truncated file. (#oss-fuzz#2403)
     184* DXF: avoid excessive memory allocation. (oss-fuzz#2444)
     185* XYZ: fix write heap-buffer-overflow (oss-fuzz#2426)
     186* GTiff: make IGetDataCoverageStatus() properly set the current TIFF directory, and only implement it for 'normal' bands. To avoid heap buffer overflows. (oss-fuzz#2438)
     187* GTiff: avoid null pointer derefrence when requested implicit overviews on corrupted JPEG-compressed file. (oss-fuzz#2441)
     188* GTiff: avoid potential issue on corrupted files (oss-fuzz#2481)
     189* GTiff: don't override member nBlocksPerRow member of GTiffJPEGOverviewBand with unrelated value, in case of single-strip case. (oss-fuzz#3020)
     190* PCIDSK: for band interleave channel, correctly use pixel_offset in case it is different from pixel_size. (oss-fuzz#2440)
     191* MITAB: fix skipping of blank lines when reading MIF geometries, and avoid potential very loop loop. Fixes https://oss-fuzz.com/v2/testcase-detail/4516730841858048
     192* CPLKeywordParser: avoid potential heap buffer overflow read. (oss-fuzz#2706)
     193* CPLKeywordParser: avoid potential infinite loop. Fixes https://oss-fuzz.com/v2/testcase-detail/5733173726019584
     194* morphFromESRI(): fixes heap-after-free uses. (oss-fuzz#2864)
     195* OGR_VRT: fix null pointer dereference on GetExtent() on an invalid layer. (oss-fuzz#3017)
     196* OGR_VRT: avoid crash on cyclic VRT. (oss-fuzz#3123)
     197* OSM: avoid potential write heap buffer overflow on corrupted PBF files. (oss-fuzz#3022)
     198* FAST: fix potential read heap buffer overflow. (oss-fuzz#3025)
     199* CPG: avoid null pointer dereference on failed open. (oss-fuzz#3136)