Gdal

Latest version: v3.9.2

Safety actively analyzes 666166 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 7 of 7

3.0.0

Not secure
Port:
* Add capability to define external VSI virtual file systems from C API (1289)
* MiniXML: Fix wrong node order when calling CPLAddXMLAttributeAndValue() after CPLCreateXMLElementAndValue()
* /vsicurl/: ReadMultiRange(): use default implementation if there is a single range (1206)
* /vsicurl/: ignore proxy CONNECT response headers (1211)
* /vsicurl/: automatically detect signed URLs where host ends with a port number; also detect signed URLs as created with the AWS4-HMAC-SHA256 method (1456)
* /vsizip/: Add config option to create zip64 extra fields by default (1267)
* /vsis3/, /vsigs/, /vsiaz/: add HTTP retry logic in writing code paths
* Fix data race in VSIFileManager::Get
* cpl_zipOpenNewFileInZip3: fix memory leak in error code path. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13103.
* VSIGZipWriteHandleMT: avoid potential deadlock in case of error
* Fix assertion in CPLGetValueType when testing non-ASCII chars
* /vsihdfs/: fix Read() when more than one hdfsRead call is needed (1349)
* Fix potential buffer overflow in CPLODBCSession::Failed (1390)
* /vsitar/: handle .tar file header with space padding instead of 0 for file size (1396)

Core:
* Support blocks larger than 2 billion pixels/bytes
* Make CPLHaveRuntimeSSSE3() and CPLHaveRuntimeAVX() use GCC constructor functions
* Move RawDataset base class to gcore/ (1268)
* RasterBand/Dataset::RasterIO(): enforce access mode on write
* PAM: preserve existing metadata when setting new one (1430)
* RawDataset: use generic RasterIO() implementation when non-nearest resampling is asked (1301)
* DumpJPK2CodeStream(): dump PLT and POC markers

Algorithms:
* RPC transformer: test success code of GDALRPCTransform() in GDALCreateRPCTransformer()
* RPC transformer: add a RPC_FOOTPRINT transformer option to provide a polygon in long/lat space where the RPC is valid, and also make gdalwarp use GDALSuggestedWarpOutput2() to restrict the bounding box of the output dataset
* GDALFillNodata(): fix wrong comparison in QUAD_CHECK() macro: nNoDataVal is only assigned to target_y values (1228)
* GDALFillNodata(): reinitialize panLastY array to nNoDataVal before bottom to top pass (1228)
* GDALFillNodata(): do an extra iteration to reach the maximum search distance in all quadrants (1228)
* GDALRasterizeLayersBuf():support any GDAL data type for buffer,and pixel and line spaceing arguments
* GDALResampleChunk32R_Mode: performance improvement
* Rasterize with MERGE_ALG=ADD: avoid burning several times intermediate points of linestrings (1307)
* rasterize: fix crash when working buffer is larger than 2GB (1338)

Utilities:
* gdal_translate: add "-nogcp" option (1469)
* gdal_contour: remove explicit width/precision=12/3 of the elev field (1487)
* gdaldem hillshade: add -igor option (1330)
* 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 behavior) (1173)
* 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)
* gdal2tiles: give local tile layer and basemap layers same min/max zoom levels as generated tile cache
* gdal2tiles: fix breakage of openlayers.html getURL() javascript function, introduced in GDAL 2.3.3 / 2.4.0 (1127)
* gdal2tiles: prevent accidental copy of full GeoTIFF into temporary .vrt file
gdal2tiles: Refactor and fix multiprocessing completion handling
* gdal_fillnodata.py: preserve color interpretation and table
* gdal_fillnodata.py: do not set geotransform if source doesn't have one
* gdalsrsinfo: do not silence errors when calling SetFromUserInput()
* gdal_retile: Use nodata value from origin dataset
* gdal_edit.py: allow setting band-specific scale and offset values (1444)
* validate_cloud_optimized_geotiff.py: check if file is only greater than 512px (1403)
* validate_cloud_optimized_geotiff.py: report headers size

Multidriver fixes:
* GTiff, GPKG, MBTiles, PostgisRaster drivers: ensure that main dataset and overviews share the same lock, so as to avoid crashing concurrent access (1488)

ADRG driver:
* modified to ensure that there is no confliction between ADRG and SRP when opening a .gen file (953)

AIGRID / AVCBin:
* fix filename case adjustment that failed on /vsi filesystems (1385)

BAG driver:
* fix potential nullptr deref on corrupted file

COSAR driver:
* avoid out-of-bound write on corrupted dataset. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12360.

EEDA driver:
* report 'path' metadata in 'path' field

GPKG driver:
* allow negative srs_id values in gpkg_spatial_ref_sys
* reduce memory requirements for cached tiles

GTiff diver:
* supports tiles/strips larger than 2GB
* add APPEND_SUBDATASET=YES capability to create subdataset / new TIFF page to an existing file
* 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)
* TIFF Lerc: properly initialize state after Create() so that BuildOverviews() succeed (1257)
* emit merged consecutive multi-range reads (1297)
* add warnings when using unsupported combination of internal mask+external overview, and fix COPY_SRC_OVERVIEWS=YES so that it does not copy ALL_VALID masks (1455)
* do not generate a TIFFTAG_GDAL_METADATA with color interpretation information for JPEG YCbCr compression
* Internal libtiff and libgeotiff: resync with upstream

FITS driver:
* new functions for Scale Offset and FITS World Coordinate System read and write (1298)

GeoRaster driver:
* Fix memory leaks

HDF5 driver:
* support reading blocks larger than 2GB
* fix handling of attributes of type SCHAR, UCHAR, USHORT and UINT (https://github.com/mapbox/rasterio/issues/1663)
* detect nodata from netCDF _FillValue (1451)
* add more strict checks for accepting datasets for GCP, and handle nodata in GCP too (1451)

IGNFHeightAsciiGrid driver:
* add support for RAF18.mnt

JPEG driver:
* fix GDAL 2.3.0 performance regression when decoding JPEG (or GPKG using JPEG) images (1324)

KEA driver:
* add support for /vsi file systems

KMLSuperOverlay driver:
* report color table of single overlay datasets, and also handle some variation in the KML structure (https://issues.qgis.org/issues/20173)

MRF driver:
* sparse index and internal resampling fixes
* fix integer overflow. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13974

MrSID driver:
* fix potential crash when a zoom level cannot be opened

netCDF driver:
* implement support for NetCDF-4 groups on reading (1180)
* support complex data types (1218)
* fix crash when opening a dataset with an attribute of length 0 (1303)
* fix IWriteBlock() to support non-scanline blocks, and use the chunk size
* better deal with datasets indexed with unusual order for x/y dimensions
* avoid inappropriate shift by -360 when attribute axis=X is set (1440)

NGW driver:
* Add CreateCopy function

NITF driver:
* avoid harmless floating point division by zero. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12844.

PCIDSK driver:
* avoid uint overflow and too big memory allocation attempt. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12893

PDF driver:
* Add a COMPOSITION_FILE creation option to generate a complex document
* And a gdal_create_pdf.py sample script
* Fix selection of Poppler PDF layers with duplicate names (1477)
* avoid division by zero when generating from vector content whose bounding box is almost a horizontal or vertical line. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13408

PDS3:
* fix decoding of band interleaved images (such as for CRISM HSP) (1239)
* add support for ENCODING_TYPE=DCT_DECOMPRESSED (1457)

PDS4 driver:
* add subdataset creation support, and getting/setting the band unit
* update template and code to PDS v1B00 schema versions

VRT driver:
* Python pixel functions: add shared object name for python 3.7
* VRT: in case of no SourceProperties, do not use global shared datasets, but only shared to the owning VRTDataset, to avoid potential reference cycles and annoying related issues. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13476.

WCS driver:
* avoid potential out-of-bound access

WMS driver:
* use proper JSon parsing for ESRI MapServer document (1416)
* Add url parameters escaping to ArcGIS Server minidriver
* avoid warning when a wms cache doesn't exist

XPM driver:
* fix read heap buffer overflow on corrupted image. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13455.

XYZ driver:
* add creation options DECIMAL_PRECISION and SIGNIFICANT_DIGITS like with AAIGrid
* fix regression regarding header lines that are not X,Y,Z (1472)

OGR 3.0.0 - Overview of Changes

Core:
* Add OGR_G_MakeValid() (requires GEOS 3.8)
* change prototye of OGRFeature::SetField( int iField, int nBytes, GByte *pabyData ) to ( ... , const void* pabyData), and same for OGR_F_SetFieldBinary().
* Polyhedral surface: fix importFromWKT to properly fix Z/M flag
* OGRBuildPolygonFromLines: avoid generating effectively duplicate points
* OGRBuildPolygonFromEdges(): improve performance. https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13798
* OGRGeometryFactory::transformWithOptions(): if WRAPDATELINE=YES, test that the geometry SRS is geographic
* OGRGeometryFactory::GetCurveParameters(): fix assertion when coordinates are very near 0
* Expat XML parsing: add OGR_EXPAT_UNLIMITED_MEM_ALLOC=YES config option to workaround failure for very specific cases
* OGRLineString::segmentize(): fix issues when segment length is divisible by maxlength (1341)
* OGR SQL: limit recursion in swq_expr_node::Check(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13540
* OGRGeometry / SFCGAL: fix dead code, memory leaks and potential nullptr deref.

OGRSpatialReference:
* Deep rework due to RFC 73 integration
* SRS_WKT_WGS84 macro replaced by SRS_WKT_WGS84_LAT_LONG
* Add OSRSetPROJSearchPaths(), OSRExportToWktEx(), OSRGetName(), OSRIsSameEx(), OSRGetCRSInfoListFromDatabase(), OSRGetAreaOfUse(),OSRGetAxisMappingStrategy(), OSRSetAxisMappingStrategy(), OSRGetDataAxisToSRSAxisMapping()
* Add OCTNewCoordinateTransformationOptions(), OCTCoordinateTransformationOptionsSetOperation(), OCTCoordinateTransformationOptionsSetAreaOfInterest(), OCTDestroyCoordinateTransformationOptions(), OCTNewCoordinateTransformationEx(), OCTTransform4D()
* Remove OSRFixupOrdering(), OSRFixup(), OSRStripCTParms(), OCTProj4Normalize(), OCTCleanupProjMutex(), OPTGetProjectionMethods(), OPTGetParameterList(), OPTGetParameterInfo()

Utilities:
* ogrinfo: report TITLE metadata in summary layer listing
* ogr2ogr: for drivers supporting ODsCCreateGeomFieldAfterCreateLayer, do not create geometry column if -nlt none
* ogrmerge.py: add shared='1' to speed-up -single mode with many layers

CARTO driver:
* Overwrite tables in single transactions
* Improve documentation and warnings around CARTODBFY (1445)

CSW driver:
* fix crash when geometry parsing fails (1248)

DODS driver:
* fixes related to memory leaks and null pointer dereferences

DXF driver:
* support RGB true color values
* fix the coloring of ByBlock entities inserted via a ByLayer INSERT
* fix double-free issue in case of writing error. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13516.

FileGDB/OpenFileGDB drivers:
* be robust when winding order of outer ring is incorrect (1369)

Elasticsearch driver:
* Fixed index comparison bug when a index have at least one mapping
* Fix _mapping url for Elasticsearch 7 compatibility

GeoJSON driver:
* speed-up random reading with GetFeature() by storing a map FID->(start,size) to retrieve performance similar to GDAL 2.2 or before (https://issues.qgis.org/issues/21085)
* report 3D layer geometry types (1495)

GeoJSONSeq driver:
* be more robust to invalid objects, and fixes performance issue on corrupted files. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13770.

GML driver:
* write SRSName element in .gfs when parsing a GML file with srsName only on top-level boundedBy element (1210)
* Add "FeatureType" to list of suffixes recognized by XSD parser (1313)
* GML/WFS: add minimum support for 'hexBinary' type (as string) (1375)

GMLAS driver:
* avoid null pointer dereference on some schemas
* do not use space as separator for schema filename in XSD open option (1452)

GMT driver:
* use file extension based detection to accept files without header (1461)

MongoDB driver:
* fix related to filters in GetFeature()

MITAB driver:
* Add encode/decode feature labels to/from UTF-8 encoding while MIF file read/write (1151)
* .tab: fix deleting a feature without geometry (1232)
* adapt dynamically default projection bounds to false_easting/false_northing values (1316)
* avoid potential assertion or stack buffer overflow on corrupted .ind files. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11999
* prevent potential infinite recursion on broken indexes. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12739.
* TAB_CSLLoad(): fix performance issue. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13588
* avoid long processing on corrupted .mif files. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13152

MSSQLSpatial driver:
* Add support for curve geometries (1299)
* Add option to expose the FID column as a feature attribute (1227)
* Adding improved extent queries
* Fix extent calculation for geography type, take care of invalid geometries

NGW driver:
* Fix get children API. Add authorization support to create dataset options
* Add support for feature extensions in OGRFeature native data
* Add feature query via chunks, attribute and spatial filter support
* Add resource type and parent identifier to metadata
* Fix batch update features
* Add JSON_DEPTH open option
* Add check forbidden field names, check duplicate field names.

OCI driver:
* Add MULTI_LOAD to open options (1233)
* Fix memory leaks

ODS driver:
* allow opening tables with empty cells with huge values of columns-repeated attribute at end of line (1243)
* avoid potential null pointer dereference when writing to corrupted filename. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12976.

OGDI driver:
* switch incorrect order for east/west bounds of spatial filter

PDS4 driver:
* add read/write support for tables (vector support)

PGDump driver:
* in WRITE_EWKT_GEOM=YES non-default mode, export geometries to ISO WKT so as to be able to export XYZM (1327)
* Fix emitted SQL when UNLOGGED=ON

PLScenes driver:
* update plscenesconf.json with SkySatCollect and add missing fields for PSOrthoTile

SDTS driver:
* error out if too many errors are raised to avoid timeout in oss-fuzz. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13819.

Selafin driver:
* avoid null pointer dereference on corrupted files. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12356.

Shapefile driver:
* DeleteLayer(): make it delete .cpg, .sbn, .sbx, .qpj and other sidecar files (1405)
* speed-up creation of lots of fields with name collisions. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13065

SQLite driver:
* set sqlite3_busy_timeout, handle SQLITE_BUSY during tile read (1370)
* close database before freeing the spatialite context. Fix crashes on dataset closing, with VirtualShape and recent spatialite versions
* Spatialite: fix update of geometry_columns_statistics when extent goes to infinity (1438)

S57 driver:
* avoid long procession on corrupted datasets. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13238

SXF driver:
* Fix wrong EPSG codes range (1278)
* Fix memory leaks in SetVertCS()

VFK driver:
* fix curved geometries being ignored (1351)

WFS3 driver:
* handle paging with missing type for rel:next, and better deal with user:pwd in URL
* use 'id' attribute of collection items, if 'name' not available

SWIG Language Bindings

All bindings:
* add Geometry::MakeValid()

Python bindings:
* fix Dataset.ReadAsRaster() on CInt16 data type (82)
* adding overviewLevel option to WarpOptions
* add noGCP options to gdal.Translate()

GDAL 2.x and older

Consult [NEWS-2.x.md](NEW-2.x.md)


Notes on Preparing a GDAL Source Release
========================================


Prerequisites:

1) Check that the release is ready to go as far as ABI (binary compatibility)
is concerned. This can be checked by comparing the installed headers of the
candidate release with the installed headers of the previous release
(diff -ur $(OLD_INSTALL_DIR)/include $(NEW_INSTALL_DIR)/include). The API
is defined as all functions and classes exported by the CPL_DLL keyword.

- For major and minor releases, there must be no function signature change
for the C API. Only new functions are allowed.

- For major releases, the allowed changes in C++ API should (or must?) be
such that user calling C++ code can still compile against new headers
without modification (existing methods can become virtual, default
arguments can be added, new methods or members can be added)

- For minor releases (1.6.1 versus 1.6.0), the C++ ABI stability must be
preserved : no method signature change, no addition of virtual methods, no
new members. Only non-virtual methods can be added.

It may also be helpful to check:
https://abi-laboratory.pro/tracker/timeline/gdal/

2) Delete existing fix_typos directory and run scripts/fix_typos.sh

Process :

1) "make completion" to regenerate scripts/gdal-bash-completion.sh
if new command line switches have been added. scripts/completionFinder.py
must also be edited before if new utilities/scripts are added/removed.

2.3

*not* need to be updated as it is a generic one)

3) Update the VERSION file (if not already done)

2.1

(*NOT* gdal_version.h which is a generated file)
Note: the format of GDAL_RELEASE_DATE should be YYYYMMDD.

2.2) Update two instances of year in CITATION file to the current year.

Page 7 of 7

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.