Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash on KML load #55963

Closed
2 tasks done
edawn opened this issue Jan 24, 2024 · 2 comments · Fixed by OSGeo/gdal#9131
Closed
2 tasks done

Crash on KML load #55963

edawn opened this issue Jan 24, 2024 · 2 comments · Fixed by OSGeo/gdal#9131
Assignees
Labels
Bug Either a bug report, or a bug fix. Let's hope for the latter! Crash/Data Corruption Upstream Needs changes in an upstream library (like Qt, Proj, GDAL, ...)

Comments

@edawn
Copy link

edawn commented Jan 24, 2024

What is the bug or the crash?

The app crashes when trying to load a KML file.

Steps to reproduce the issue

Go to "Layer" -> "Add Layer ..." -> "Add Vector Layer ..." and attempt to load the following KML file.

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"
 xmlns:gx="http://www.google.com/kml/ext/2.2">
<Folder>
  <Placemark>
    <gx:Track>
      <gx:coord>-122.207881 37.371915 156.000000</gx:coord>
      <gx:coord>-122.205712 37.373288 152.000000</gx:coord>
      <gx:coord>-122.204678 37.373939 147.000000</gx:coord>
      <gx:coord>-122.203572 37.374630 142.199997</gx:coord>
      <gx:coord>-122.203451 37.374706 141.800003</gx:coord>
      <gx:coord>-122.203329 37.374780 141.199997</gx:coord>
      <gx:coord>-122.203207 37.374857 140.199997</gx:coord>
    </gx:Track>
  </Placemark>
</Folder>
</kml>

Result:
The App crashes.

Expected result:
The App does not crash. Ideally it also imports the data (like Google Earth does) or at least shows some helpful error message.

Note:
This is the same KML file as the one shown at https://developers.google.com/kml/documentation/kmlreference#simple-example only with the <when> tags removed.

Versions

<style type="text/css"> p, li { white-space: pre-wrap; } </style>
QGIS version 3.34.3-Prizren QGIS code revision 4737323
Qt version 5.15.3
Python version 3.9.18
GDAL/OGR version 3.8.3
PROJ version 9.3.1
EPSG Registry database version v10.098 (2023-11-24)
GEOS version 3.12.1-CAPI-1.18.1
SQLite version 3.41.1
PDAL version 2.6.0
PostgreSQL client version 15.2
SpatiaLite version 5.1.0
QWT version 6.1.6
QScintilla2 version 2.13.4
OS version Windows 10 Version 2009
       
Active Python plugins
kmltools 3.1.31
QuickOSM 2.2.3
db_manager 0.1.20
grassprovider 2.12.99
MetaSearch 0.3.6
processing 2.12.99
QGIS version 3.34.3-Prizren QGIS code revision [4737323](https://github.com/qgis/QGIS/commit/47373234ac) Qt version 5.15.3 Python version 3.9.18 GDAL/OGR version 3.8.3 PROJ version 9.3.1 EPSG Registry database version v10.098 (2023-11-24) GEOS version 3.12.1-CAPI-1.18.1 SQLite version 3.41.1 PDAL version 2.6.0 PostgreSQL client version 15.2 SpatiaLite version 5.1.0 QWT version 6.1.6 QScintilla2 version 2.13.4 OS version Windows 10 Version 2009

Active Python plugins
kmltools
3.1.31
QuickOSM
2.2.3
db_manager
0.1.20
grassprovider
2.12.99
MetaSearch
0.3.6
processing
2.12.99

Supported QGIS version

  • I'm running a supported QGIS version according to the roadmap.

New profile

Additional context

"Report details" from the crash dialog:

Python Stack Trace
Windows fatal exception: access violation

Thread 0x0000718c (most recent call first):

Stack Trace

CPLODBCDriverInstaller::RemoveDriver :
CPLODBCDriverInstaller::RemoveDriver :
CPLODBCDriverInstaller::RemoveDriver :
CPLODBCDriverInstaller::RemoveDriver :
CPLODBCDriverInstaller::RemoveDriver :
CPLODBCDriverInstaller::RemoveDriver :
CPLODBCDriverInstaller::RemoveDriver :
QgsOgrProviderUtils::querySubLayerList :
QgsTiledSceneRenderer::flags :
QgsProviderRegistry::querySublayers :
QgsProviderSublayerTask::run :
QgsTask::start :
QThreadPoolPrivate::reset :
QThread::start :
BaseThreadInitThunk :
RtlUserThreadStart :

QGIS Info
QGIS Version: 3.34.3-Prizren
QGIS code revision: 4737323
Compiled against Qt: 5.15.3
Running against Qt: 5.15.3
Compiled against GDAL: 3.8.3
Running against GDAL: 3.8.3

System Info
CPU Type: x86_64
Kernel Type: winnt
Kernel Version: 10.0.22631

@edawn edawn added the Bug Either a bug report, or a bug fix. Let's hope for the latter! label Jan 24, 2024
@rouault rouault added the Upstream Needs changes in an upstream library (like Qt, Proj, GDAL, ...) label Jan 24, 2024
@rouault rouault self-assigned this Jan 24, 2024
@rouault
Copy link
Contributor

rouault commented Jan 24, 2024

The crash occurs in the OGR LIBKML driver. Investigating

@rouault
Copy link
Contributor

rouault commented Jan 24, 2024

GDAL upstream fix in OSGeo/gdal#9131

rouault added a commit to OSGeo/gdal that referenced this issue Feb 7, 2024
LIBKML: fix crash on a gx:Track without when subelements (fixes qgis/QGIS#55963)
rouault added a commit to OSGeo/gdal that referenced this issue Feb 7, 2024
[Backport release/3.8] LIBKML: fix crash on a gx:Track without when subelements (fixes qgis/QGIS#55963)
clrpackages pushed a commit to clearlinux-pkgs/gdal that referenced this issue Feb 20, 2024
Daniel Baston (1):
      CI: Remove redundant clang-format check

Even Rouault (47):
      EEDA/EEDAI: use 'crsWkt' element
      gdalinfo: do not emit errors if corner coordinate reprojection fails
      HOWTO-RELEASE: update [ci skip]
      CSV: do not quote numeric fields even if STRING_QUOTING=ALWAYS (3.8.1 regression) (fixes qgis/QGIS#55808)
      OGR2SQLITE_Setup(): robustify against potential crashing scenario
      WMS: fix nullptr dereference on invalid document (fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65772)
      gdalwarp: do not enable blank line detection when -tap and -te are specified (fixes #9059)
      CI fedora_rawhide: explicitly install python3-setuptools
      FindECW.cmake: make it work for Windows 32-bit builds (fixes #9106)
      Arrow/Parquet: add (minimum) support for libarrow 15.0
      OGRArrowLayer::MapArrowTypeToOGR(): make the code robust to potentially new entries in the arrow::Type enumeration
      GMLAS: recognize GeometricPrimitivePropertyType
      wms.py: set timeout on one test resource
      Restore use of gmtime_r and localtime_r; extend to ctime_r; use Windows variants too
      netCDF: use VSILocalTime()
      Internal libopencad: use localtime_r() or localtime_s() when possible
      PCIDSK SDK: use ctime_r() or ctime_s() when possible
      degrib: use gmtime_r() or gmtime_s() when possible
      ExecuteSQL(dialect=SQLite): support 'SELECT\n' for example (fixes #9093)
      ogr2ogr: Arrow code path: take into account -limit parameter for MAX_FEATURES_IN_BATCH
      FindSQLite3.cmake: improve detection of static libsqlite3.a (fixes #9096)
      PDS: fix compilation with Emscripten version 3.1.7
      Python bindings: remove run of 'python -m lib2to3' that is a no-op, given that lib2to3 is removed in python 3.13 (fixes #9173)
      BMP: fix reading images larger than 4GB
      MySQL: fix/workaround server-side spatial filtering when SRS is geographic with MySQL >= 8 (fixes qgis/QGIS#55463)
      OGRGeometryFactory::createGeometry(): do not assert on wkbUnkown input
      docker/ubuntu-full/Dockerfile: update to Arrow 15.0.0 (fixes #9183) [ci skip]
      OGRGeometryFactory::forceTo(): fix assertion with empty geometry and target type = unknown
      bmp_read.py: fix wrong driver name
      /vsisparse/: fix Stat() on files larger than 4 GB on 32-bit builds
      docker/ubuntu-full/Dockerfile: disable AVX2 when building TileDB [ci skip]
      PDF: correctly initialize PAM when opening a subdataset (specific page for example)
      GDALOverviewDataset: avoid setting SetEnableOverviews(false) during lifetime of object. Just do it transiently
      VRTPansharpenedRasterBand::GetOverviewCount(): robustify against potential failure of GDALCreateOverviewDataset()
      LIBKML: fix crash on a gx:Track without when subelements (fixes qgis/QGIS#55963)
      CPLAtof()/CPLStrtod(): recognize again INF and -INF
      /vsicurl/: fix potential multithreaded crash when downloading the same region in parallel and that the download fails
      ODS: fix parsing of large cells on Windows (at least with mingw64) with new expat 2.6.0 release
      GeoRSS: harmonize on a 8192 byte large parsing buffer on all platforms
      GPX: harmonize on a 8192 byte large parsing buffer on all platforms
      JML: harmonize on a 8192 byte large parsing buffer on all platforms
      KML: harmonize on a 8192 byte large parsing buffer on all platforms
      LVBAG: harmonize on a 8192 byte large parsing buffer on all platforms
      SVG: harmonize on a 8192 byte large parsing buffer on all platforms
      XLSX: harmonize on a 8192 byte large parsing buffer on all platforms
      PDF vector stream parser: correcly parse structures like '[3 3.5] 0 d '
      Prepare for GDAL 3.8.4

Georg Semmler (1):
      Allow the project_binary_dir to contain a whitespace

Patrik Sylve (1):
      PAM only unset GPF_DIRTY flag

Per Mildner (1):
      docker/ubuntu-full/Dockerfile: pin libarrow-acero-dev version (fixes #9183)

Tamas Szekeres (1):
      MSSQLSpatial Fix BCP performance problem (#9112)

Key imported:
--list-packet:
# off=0 ctb=99 tag=6 hlen=3 plen=269
:public key packet:
	version 4, algo 1, created 1434650461, expires 0
	pkey[0]: [2048 bits]
	pkey[1]: [17 bits]
	keyid: 33EBBFC47B3DD87D
# off=272 ctb=b4 tag=13 hlen=2 plen=41
:user ID packet: "Even Rouault <even.rouault@spatialys.com>"
# off=315 ctb=89 tag=2 hlen=3 plen=312
:signature packet: algo 1, keyid 33EBBFC47B3DD87D

--fingerprint:
pub   rsa2048 2015-06-18 [SC]
      B1FA 7D81 EEB8 E663 9917  8B97 33EB BFC4 7B3D D87D
uid           [ unknown] Even Rouault <even.rouault@spatialys.com>
sub   rsa2048 2015-06-18 [E]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Either a bug report, or a bug fix. Let's hope for the latter! Crash/Data Corruption Upstream Needs changes in an upstream library (like Qt, Proj, GDAL, ...)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants