[gdal] 01/03: Add patch to fix segfault when exiting with proper closing of datasource.

Sebastiaan Couwenberg sebastic at moszumanska.debian.org
Tue Mar 8 23:55:19 UTC 2016


This is an automated email from the git hooks/post-receive script.

sebastic pushed a commit to branch master
in repository gdal.

commit f16a4b6ca75750ea4c5b2e54de1cc6595fc7aced
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Tue Mar 8 22:51:13 2016 +0100

    Add patch to fix segfault when exiting with proper closing of datasource.
---
 debian/changelog                                   |  7 +++
 .../ogr-vrt-implement-CloseDependantDataset.patch  | 60 ++++++++++++++++++++++
 debian/patches/series                              |  1 +
 3 files changed, 68 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 344b2a9..b599237 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+gdal (2.0.2+dfsg-3) UNRELEASED; urgency=medium
+
+  * Add patch to fix segfault when exiting with proper closing of datasource.
+    (closes: #817146)
+
+ -- Bas Couwenberg <sebastic at debian.org>  Tue, 08 Mar 2016 22:50:58 +0100
+
 gdal (2.0.2+dfsg-2) unstable; urgency=medium
 
   * Fix gdal-abi dependency for mips64el symbols.
diff --git a/debian/patches/ogr-vrt-implement-CloseDependantDataset.patch b/debian/patches/ogr-vrt-implement-CloseDependantDataset.patch
new file mode 100644
index 0000000..4c24f85
--- /dev/null
+++ b/debian/patches/ogr-vrt-implement-CloseDependantDataset.patch
@@ -0,0 +1,60 @@
+Description: OGR_VRT: implement CloseDependantDataset?() so that exiting with proper closing of datasource doesn't crash.
+Author: Even Rouault <even dot rouault at spatialys dot com>
+Origin: https://trac.osgeo.org/gdal/changeset/33684
+Bug: https://trac.osgeo.org/gdal/ticket/6408
+Bug-Debian: https://bugs.debian.org/817146
+
+--- a/ogr/ogrsf_frmts/vrt/ogr_vrt.h
++++ b/ogr/ogrsf_frmts/vrt/ogr_vrt.h
+@@ -241,6 +241,8 @@ class OGRVRTDataSource : public OGRDataS
+                         OGRVRTDataSource(GDALDriver* poDriver);
+                         ~OGRVRTDataSource();
+ 
++    virtual int         CloseDependentDatasets();
++
+     OGRLayer*           InstanciateLayer(CPLXMLNode *psLTree,
+                                     const char *pszVRTDirectory,
+                                     int bUpdate,
+--- a/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp
++++ b/ogr/ogrsf_frmts/vrt/ogrvrtdatasource.cpp
+@@ -120,14 +120,10 @@ OGRVRTDataSource::OGRVRTDataSource(GDALD
+ OGRVRTDataSource::~OGRVRTDataSource()
+ 
+ {
+-    int         i;
+-
+     CPLFree( pszName );
+ 
+-    for( i = 0; i < nLayers; i++ )
+-        delete papoLayers[i];
+-    
+-    CPLFree( papoLayers );
++    CloseDependentDatasets();
++
+     CPLFree( paeLayerType );
+ 
+     if( psTree != NULL)
+@@ -137,6 +133,23 @@ OGRVRTDataSource::~OGRVRTDataSource()
+ }
+ 
+ /************************************************************************/
++/*                        CloseDependentDatasets()                      */
++/************************************************************************/
++
++int OGRVRTDataSource::CloseDependentDatasets()
++{
++    int bHasClosedDependentDatasets = (nLayers > 0);
++    for( int i = 0; i < nLayers; i++ )
++    {
++        delete papoLayers[i];
++    }
++    CPLFree( papoLayers );
++    nLayers = 0;
++    papoLayers = NULL;
++    return bHasClosedDependentDatasets;
++}
++
++/************************************************************************/
+ /*                        InstanciateWarpedLayer()                      */
+ /************************************************************************/
+ 
diff --git a/debian/patches/series b/debian/patches/series
index 2bd45c1..3a30d79 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -20,3 +20,4 @@ transform-typo.patch
 sqlite-3.10.0
 formatted-typo.patch
 remaining-typo.patch
+ogr-vrt-implement-CloseDependantDataset.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/gdal.git



More information about the Pkg-grass-devel mailing list