[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#847273: jessie-pu: package mapserver/6.4.1-5



On 01/07/2017 09:55 AM, Sebastiaan Couwenberg wrote:
> On 01/07/2017 09:19 AM, Adam D. Barratt wrote:
>> On Fri, 2017-01-06 at 23:23 +0000, Adam D. Barratt wrote:
>>> Control: tags -1 + pending
>>>
>>> On Thu, 2017-01-05 at 21:27 +0100, Sebastiaan Couwenberg wrote:
>>>> On 01/05/2017 09:04 PM, Adam D. Barratt wrote:
>>>>> On Tue, 2016-12-06 at 22:00 +0100, Sebastiaan Couwenberg wrote:
>>>>>> Sorry for the outdated debdiff, for p-u the distribution has been
>>>>>> changed to stable.
>>>>>
>>>>> Please go ahead.
>>>>
>>>> Thanks!
>>>
>>> Flagged for acceptance.
>>
>> The upload subsequently FTBFS on all architectures on the buildds.
>>
>> The relevant portion of the logs appears to be:
>>
>> [...]
>>
>> I'm not entirely sure how you managed to build the amd64 packages
>> without this issue occurring, but please look into this ASAP. As things
>> stand, we won't be including mapserver in 8.7.
> 
> I simply built the package in an up-to-date jessie cowbuilder chroot.
> 
> The buildds used a newer PHP from p-u, my build was with
> 5.6.24+dfsg-0+deb8u1 in jessie.
> 
> I can reproduce the build failure with an i386 chroot on barriere, which
> also uses php 5.6.29+dfsg-0+deb8u1 from jessie-security.
> 
> Disabling the PHP support in mapserver may be an option, it has been
> disabled in testing/unstable too because it lacks support for PHP 7. It
> will force users to migrate to other mapscript implementations sooner
> than their upgrade to stretch.
> 
> Another option it cherry-pick this change from upstream for this issue:
> 
>  https://github.com/mapserver/mapserver/commit/d5cc5840683bded229dbc2cc7d534db6d1e1f386#diff-f8894221d4e5ead75cf65d8aa506ae91
> 
> If that change to mapscript/php/error.c is acceptable for jessie, I'll
> include it in the package and prepare mapserver/6.4.1-5+deb8u2.

I've confirmed that the above commit fixes the FTFBS in the jessie i386
chroot on barriere (with php 5.6.29+dfsg-0+deb8u1), and also works in my
jessie amd64 chroot (with php 5.6.24+dfsg-0+deb8u1).

Updated debdiff against the version in jessie is attached.

Kind Regards,

Bas

-- 
 GPG Key ID: 4096R/6750F10AE88D4AF1
Fingerprint: 8182 DE41 7056 408D 6146  50D1 6750 F10A E88D 4AF1
diff -Nru mapserver-6.4.1/debian/changelog mapserver-6.4.1/debian/changelog
--- mapserver-6.4.1/debian/changelog	2014-07-05 17:32:59.000000000 +0200
+++ mapserver-6.4.1/debian/changelog	2017-01-07 10:02:02.000000000 +0100
@@ -1,3 +1,15 @@
+mapserver (6.4.1-5+deb8u2) stable; urgency=medium
+
+  * Add upstream patch to fix FTBFS with php >= 5.6.25.
+
+ -- Bas Couwenberg <sebastic@debian.org>  Sat, 07 Jan 2017 09:43:05 +0100
+
+mapserver (6.4.1-5+deb8u1) stable; urgency=high
+
+  * Add upstream patch to fix CVE-2016-9839.
+
+ -- Bas Couwenberg <sebastic@debian.org>  Mon, 05 Dec 2016 22:05:30 +0100
+
 mapserver (6.4.1-5) unstable; urgency=medium
 
   * Add debug package for libmapserver. Thanks to Frederic Junod for the patch.
diff -Nru mapserver-6.4.1/debian/patches/0001-Backport-4928-and-5356.patch mapserver-6.4.1/debian/patches/0001-Backport-4928-and-5356.patch
--- mapserver-6.4.1/debian/patches/0001-Backport-4928-and-5356.patch	1970-01-01 01:00:00.000000000 +0100
+++ mapserver-6.4.1/debian/patches/0001-Backport-4928-and-5356.patch	2017-01-07 09:27:30.000000000 +0100
@@ -0,0 +1,120 @@
+From 022d24bd34196b6dca67053fb797a6980210bc54 Mon Sep 17 00:00:00 2001
+From: Thomas Bonfort <thomas.bonfort@gmail.com>
+Date: Thu, 1 Dec 2016 18:59:05 +0100
+Subject: Backport #4928 and #5356
+
+---
+ mapogr.cpp   | 52 ++++++++++++++++++++++++++++------------------------
+ mappostgis.c |  4 ++--
+ 2 files changed, 30 insertions(+), 26 deletions(-)
+
+--- a/mapogr.cpp
++++ b/mapogr.cpp
+@@ -1118,18 +1118,15 @@ msOGRFileOpen(layerObj *layer, const cha
+     RELEASE_OGR_LOCK;
+ 
+     if( hDS == NULL ) {
+-      if( strlen(CPLGetLastErrorMsg()) == 0 )
+-        msSetError(MS_OGRERR,
+-                   "Open failed for OGR connection in layer `%s'.  "
+-                   "File not found or unsupported format.",
+-                   "msOGRFileOpen()",
+-                   layer->name?layer->name:"(null)" );
+-      else
+-        msSetError(MS_OGRERR,
+-                   "Open failed for OGR connection in layer `%s'.\n%s\n",
+-                   "msOGRFileOpen()",
+-                   layer->name?layer->name:"(null)",
+-                   CPLGetLastErrorMsg() );
++      msSetError(MS_OGRERR, 
++                "Open failed for OGR connection in layer `%s'.  "
++                "Check logs.", 
++                "msOGRFileOpen()",
++                layer->name?layer->name:"(null)" );
++      if( strlen(CPLGetLastErrorMsg()) != 0 )
++          msDebug("Open failed for OGR connection in layer `%s'.\n%s\n",
++                  layer->name?layer->name:"(null)", 
++                  CPLGetLastErrorMsg() );
+       CPLFree( pszDSName );
+       CPLFree( pszLayerDef );
+       return NULL;
+@@ -1154,10 +1151,13 @@ msOGRFileOpen(layerObj *layer, const cha
+     ACQUIRE_OGR_LOCK;
+     hLayer = OGR_DS_ExecuteSQL( hDS, pszLayerDef, NULL, NULL );
+     if( hLayer == NULL ) {
+-      msSetError(MS_OGRERR,
+-                 "ExecuteSQL(%s) failed.\n%s",
+-                 "msOGRFileOpen()",
+-                 pszLayerDef, CPLGetLastErrorMsg() );
++      msSetError(MS_OGRERR, 
++              "ExecuteSQL(%s) failed. Check logs",
++              "msOGRFileOpen()", 
++              pszLayerDef);
++      msDebug(
++              "ExecuteSQL(%s) failed.\n%s",
++              pszLayerDef, CPLGetLastErrorMsg() );
+       RELEASE_OGR_LOCK;
+       msConnPoolRelease( layer, hDS );
+       CPLFree( pszLayerDef );
+@@ -1189,9 +1189,11 @@ msOGRFileOpen(layerObj *layer, const cha
+   }
+ 
+   if (hLayer == NULL) {
+-    msSetError(MS_OGRERR, "GetLayer(%s) failed for OGR connection `%s'.",
+-               "msOGRFileOpen()",
+-               pszLayerDef, connection );
++    msSetError(MS_OGRERR, "GetLayer(%s) failed for OGR connection. Check logs.",
++                "msOGRFileOpen()", 
++                pszLayerDef);
++    msDebug("GetLayer(%s) failed for OGR connection `%s'.",
++                pszLayerDef, connection );
+     CPLFree( pszLayerDef );
+     msConnPoolRelease( layer, hDS );
+     return NULL;
+@@ -1356,10 +1358,12 @@ static int msOGRFileWhichShapes(layerObj
+     if( OGR_L_SetAttributeFilter( psInfo->hLayer, layer->filter.string+6 )
+         != OGRERR_NONE ) {
+       msSetError(MS_OGRERR,
+-                 "SetAttributeFilter(%s) failed on layer %s.\n%s",
++                 "SetAttributeFilter(%s) failed on layer %s.", 
+                  "msOGRFileWhichShapes()",
+-                 layer->filter.string+6, layer->name?layer->name:"(null)",
+-                 CPLGetLastErrorMsg() );
++                 layer->filter.string+6, layer->name?layer->name:"(null)");
++      msDebug("SetAttributeFilter(%s) failed on layer %s.\n%s", 
++              layer->filter.string+6, layer->name?layer->name:"(null)", 
++              CPLGetLastErrorMsg() );
+       RELEASE_OGR_LOCK;
+       return MS_FAILURE;
+     }
+@@ -1562,8 +1566,8 @@ msOGRFileNextShape(layerObj *layer, shap
+     if( (hFeature = OGR_L_GetNextFeature( psInfo->hLayer )) == NULL ) {
+       psInfo->last_record_index_read = -1;
+       if( CPLGetLastErrorType() == CE_Failure ) {
+-        msSetError(MS_OGRERR, "%s", "msOGRFileNextShape()",
+-                   CPLGetLastErrorMsg() );
++        msSetError(MS_OGRERR, "OGR error. check logs", "msOGRFileNextShape()");
++        msDebug("msOGRFileNextShape() error: %s", CPLGetLastErrorMsg() );
+         RELEASE_OGR_LOCK;
+         return MS_FAILURE;
+       } else {
+--- a/mappostgis.c
++++ b/mappostgis.c
+@@ -2305,7 +2305,8 @@ int msPostGISLayerOpen(layerObj *layer)
+         }
+       }
+ 
+-      msSetError(MS_QUERYERR, "Database connection failed (%s) with connect string '%s'\nIs the database running? Is it allowing connections? Does the specified user exist? Is the password valid? Is the database on the standard port?", "msPostGISLayerOpen()", PQerrorMessage(layerinfo->pgconn), maskeddata);
++      msDebug("Database connection failed (%s) with connect string '%s'\nIs the database running? Is it allowing connections? Does the specified user exist? Is the password valid? Is the database on the standard port?.\n", PQerrorMessage(layerinfo->pgconn), maskeddata);
++      msSetError(MS_QUERYERR, "Database connection failed.\nIs the database running? Is it allowing connections? Does the specified user exist? Is the password valid? Is the database on the standard port?", "msPostGISLayerOpen()");
+ 
+       free(maskeddata);
+       free(layerinfo);
+@@ -2327,7 +2328,6 @@ int msPostGISLayerOpen(layerObj *layer)
+         msSetError(MS_QUERYERR, "PostgreSQL database connection gone bad (%s)", "msPostGISLayerOpen()", PQerrorMessage(layerinfo->pgconn));
+         return MS_FAILURE;
+       }
+-
+     }
+   }
+ 
diff -Nru mapserver-6.4.1/debian/patches/0001-Fix-build-issue-with-php-5.6.25-5318.patch mapserver-6.4.1/debian/patches/0001-Fix-build-issue-with-php-5.6.25-5318.patch
--- mapserver-6.4.1/debian/patches/0001-Fix-build-issue-with-php-5.6.25-5318.patch	1970-01-01 01:00:00.000000000 +0100
+++ mapserver-6.4.1/debian/patches/0001-Fix-build-issue-with-php-5.6.25-5318.patch	2017-01-07 10:01:02.000000000 +0100
@@ -0,0 +1,25 @@
+Description: Fix build issue with php >= 5.6.25.
+Author: Landry Breuil
+Origin: https://github.com/mapserver/mapserver/commit/d5cc5840683bded229dbc2cc7d534db6d1e1f386
+Bug: https://github.com/mapserver/mapserver/pull/5318
+
+--- a/mapscript/php/error.c
++++ b/mapscript/php/error.c
+@@ -31,6 +31,17 @@
+ 
+ #include "php_mapscript.h"
+ 
++#if PHP_VERSION_ID >= 50625
++#undef ZVAL_STRING
++#define ZVAL_STRING(z, s, duplicate) do {       \
++    const char *__s=(s);                            \
++    zval *__z = (z);                                        \
++    Z_STRLEN_P(__z) = strlen(__s);          \
++    Z_STRVAL_P(__z) = (duplicate?estrndup(__s, Z_STRLEN_P(__z)):(char*)__s);\
++    Z_TYPE_P(__z) = IS_STRING;                      \
++} while (0)
++#endif
++
+ zend_class_entry *mapscript_ce_error;
+ 
+ ZEND_BEGIN_ARG_INFO_EX(error___get_args, 0, 0, 1)
diff -Nru mapserver-6.4.1/debian/patches/series mapserver-6.4.1/debian/patches/series
--- mapserver-6.4.1/debian/patches/series	2014-07-05 17:32:59.000000000 +0200
+++ mapserver-6.4.1/debian/patches/series	2017-01-07 10:00:07.000000000 +0100
@@ -5,3 +5,5 @@
 cmake-mapserver-export.patch
 java-hardening.patch
 php56.patch
+0001-Backport-4928-and-5356.patch
+0001-Fix-build-issue-with-php-5.6.25-5318.patch

Reply to: