[postgis] 01/01: Add patch geojson-fix-3094.patch, prepare for upload to unstable
Johan Van de Wauw
johanvdw-guest at moszumanska.debian.org
Wed Apr 1 20:15:42 UTC 2015
This is an automated email from the git hooks/post-receive script.
johanvdw-guest pushed a commit to branch ubuntu/trusty
in repository postgis.
commit 26361d8080cab42761bc3653d7accf3ebf20c09b
Author: Markus Wanner <markus at bluegap.ch>
Date: Mon Mar 30 20:04:19 2015 +0200
Add patch geojson-fix-3094.patch, prepare for upload to unstable
back-ported from the 2.1.7 release, to fix a crash of the database
backend process when given invalid GeoJSON data.
patch refreshed for version 2.1.4
Conflicts:
debian/changelog
debian/patches/series
---
debian/changelog | 9 ++++
debian/patches/geojson-fix-3094.patch | 77 +++++++++++++++++++++++++++++++++++
debian/patches/series | 1 +
3 files changed, 87 insertions(+)
diff --git a/debian/changelog b/debian/changelog
index b1064c3..ef0c185 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+postgis (2.1.2+dfsg-2ubuntu0.1) trusty; urgency=high
+
+ [ Markus Wanner ]
+ * Add patch geojson-fix-3094.patch, back-ported from the 2.1.7 release,
+ to fix a crash of the database backend process when given invalid
+ GeoJSON data. Based on debian patch by Markus Wanner.
+
+ -- Johan Van de Wauw <johan.vandewauw at gmail.com> Wed, 01 Apr 2015 21:29:10 +0200
+
postgis (2.1.2+dfsg-2) unstable; urgency=medium
* Fix arch-only builds by moving the maven-repo-helper dependency from
diff --git a/debian/patches/geojson-fix-3094.patch b/debian/patches/geojson-fix-3094.patch
new file mode 100644
index 0000000..e51d004
--- /dev/null
+++ b/debian/patches/geojson-fix-3094.patch
@@ -0,0 +1,77 @@
+Description: Fix for GeoJSON ingestion
+ Malformed JSON data used to crash the database backend process and
+ especially web services use to pass on such JSON data unexamined.
+Forwarded: not-needed
+Bug: http://trac.osgeo.org/postgis/ticket/3094
+Origin: upstream, http://trac.osgeo.org/postgis/changeset/13400
+Author: Paul Ramsey <pramsey at cleverelephant.ca>
+
+--- a/liblwgeom/lwin_geojson.c
++++ b/liblwgeom/lwin_geojson.c
+@@ -47,7 +47,11 @@ findMemberByName(json_object* poObj, con
+
+ if( NULL != json_object_get_object(poTmp) )
+ {
+- assert( NULL != json_object_get_object(poTmp)->head );
++ if( NULL == json_object_get_object(poTmp)->head )
++ {
++ geojson_lwerror("invalid GeoJSON representation", 2);
++ return NULL;
++ }
+
+ for( it.entry = json_object_get_object(poTmp)->head;
+ ( it.entry ?
+@@ -79,7 +83,12 @@ parse_geojson_coord(json_object *poObj,
+ const int nSize = json_object_array_length( poObj );
+ LWDEBUGF(3, "parse_geojson_coord called for array size %d.", nSize );
+
+-
++ if ( nSize < 2 )
++ {
++ geojson_lwerror("Too few ordinates in GeoJSON", 4);
++ return LW_FAILURE;
++ }
++
+ // Read X coordinate
+ poObjCoord = json_object_array_get_idx( poObj, 0 );
+ pt.x = json_object_get_double( poObjCoord );
+@@ -90,7 +99,7 @@ parse_geojson_coord(json_object *poObj,
+ pt.y = json_object_get_double( poObjCoord );
+ LWDEBUGF(3, "parse_geojson_coord pt.y = %f.", pt.y );
+
+- if( nSize == 3 ) /* should this be >= 3 ? */
++ if( nSize < 2 ) /* should this be >= 3 ? */
+ {
+ // Read Z coordinate
+ poObjCoord = json_object_array_get_idx( poObj, 2 );
+@@ -98,19 +107,27 @@ parse_geojson_coord(json_object *poObj,
+ LWDEBUGF(3, "parse_geojson_coord pt.z = %f.", pt.z );
+ *hasz = LW_TRUE;
+ }
+- else
++ else if ( nSize == 2 )
+ {
+ *hasz = LW_FALSE;
+ /* Initialize Z coordinate, if required */
+ if ( FLAGS_GET_Z(pa->flags) ) pt.z = 0.0;
+ }
+-
+- /* TODO: should we account for nSize > 3 ? */
++ else
++ {
++ /* TODO: should we account for nSize > 3 ? */
++ /* more than 3 coordinates, we're just dropping dimensions here... */
++ }
+
+ /* Initialize M coordinate, if required */
+ if ( FLAGS_GET_M(pa->flags) ) pt.m = 0.0;
+
+ }
++ else
++ {
++ /* If it's not an array, just don't handle it */
++ return LW_FAILURE;
++ }
+
+ return ptarray_append_point(pa, &pt, LW_FALSE);
+ }
diff --git a/debian/patches/series b/debian/patches/series
index 6209d3d..bf7d3fb 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -7,3 +7,4 @@ honor-build-flags
fix-armel
fix-manpage
de-translation
+geojson-fix-3094.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/postgis.git
More information about the Pkg-grass-devel
mailing list