Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:97457 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 43774 invoked from network); 22 Dec 2016 15:13:57 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 22 Dec 2016 15:13:57 -0000 Authentication-Results: pb1.pair.com header.from=zeev@zend.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=zeev@zend.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 104.47.38.112 as permitted sender) X-PHP-List-Original-Sender: zeev@zend.com X-Host-Fingerprint: 104.47.38.112 mail-bl2nam02on0112.outbound.protection.outlook.com Received: from [104.47.38.112] ([104.47.38.112:64226] helo=NAM02-BL2-obe.outbound.protection.outlook.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id C6/00-43332-3BDEB585 for ; Thu, 22 Dec 2016 10:13:56 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=RWSoftware.onmicrosoft.com; s=selector1-zend-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=7uM2erNzy5gWCC6iaiED1TmwVIzYYaj0Sbm1H5baU9k=; b=uZX3bpEmmPo6496vSfpOzm6/J7C7LX2gKbGeLnMTEvKl3wWw0p9W1tceUdLBHqcS7zlgBAWaguMugAFw6e9aolvSp1LPQhZAUvyQEzTz4gkjHxen5+eUafla2TP0UgB+esXd6jfGrpF5idp8ny2+M8GWQ0IZPFlWA0naGHk6pM8= Received: from BY2PR02MB298.namprd02.prod.outlook.com (10.141.140.21) by BY2PR02MB298.namprd02.prod.outlook.com (10.141.140.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.803.11; Thu, 22 Dec 2016 15:13:50 +0000 Received: from BY2PR02MB298.namprd02.prod.outlook.com ([10.141.140.21]) by BY2PR02MB298.namprd02.prod.outlook.com ([10.141.140.21]) with mapi id 15.01.0803.013; Thu, 22 Dec 2016 15:13:50 +0000 To: PHP internals Thread-Topic: Fix for issue #72320 - compatibility breakage in 7.0.11 Thread-Index: AdJcZQpwolNShFY3Skaf3n6dVLSIng== Date: Thu, 22 Dec 2016 15:13:50 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=zeev@zend.com; x-originating-ip: [212.199.177.67] x-ms-office365-filtering-correlation-id: 9454779c-cc91-40e2-675b-08d42a7d22d3 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:BY2PR02MB298; x-microsoft-exchange-diagnostics: 1;BY2PR02MB298;7:lFNBrXOlOThjBfcNvFb0JCK6PMv/csC+PLoG41c0CUQgk7/TylVMxXs+jilXj6HzYUjuon4Wg/cwesxgHFs8zProgvc+1AK2Vyy/Ubnb9x1kwNjYe0ScYGb5sFLJgeuJmXEm3AE8ifr8rRylfzLbLarUxneHGX1MNAn4EkQybYcY1htbNHM6ItbJgdf8h3A/9q8bSo/SY1mB5itYyzkMtushDko88BIWD74WLMiuwJd9OWnIrjQ6/bvaRAcr3bsd+Y22/p7TjcYWIJU/PewtlK1gOHnIdNoSSvwMV+Euo+HCk7Bb1Jomk8UDXeDN4K7Ux0gouVIb/etkMt18mCSRkdUuFk1QBaHU+a+t1zVWvL1Ge0pcOmlPUkWrg/PDcoudtZZILwUgtsTCJ9e/nRJ0SK1Vx5dlgjOF8YTEYdyBUTn06pmgwg955kxQY2HOBWmVlzRZlQ6v8G04nOhuQKbckg== x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(192374486261705); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6041248)(20161123564025)(20161123560025)(20161123555025)(20161123562025)(20161123558021)(6072148);SRVR:BY2PR02MB298;BCL:0;PCL:0;RULEID:;SRVR:BY2PR02MB298; x-forefront-prvs: 01644DCF4A x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(6009001)(7916002)(39450400003)(189002)(199003)(5383002)(5423002)(74316002)(305945005)(7736002)(66066001)(76576001)(189998001)(97736004)(107886002)(450100001)(122556002)(86362001)(102836003)(3846002)(6116002)(8936002)(99286002)(68736007)(81156014)(92566002)(77096006)(81166006)(8676002)(3660700001)(3280700002)(106356001)(105586002)(110136003)(7696004)(101416001)(6506006)(50986999)(2900100001)(33656002)(2906002)(38730400001)(6916009)(25786008)(5660300001)(54356999)(9686002)(6436002);DIR:OUT;SFP:1102;SCL:1;SRVR:BY2PR02MB298;H:BY2PR02MB298.namprd02.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; received-spf: None (protection.outlook.com: zend.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: zend.com X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Dec 2016 15:13:50.7989 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 32210298-c08b-4829-8097-6b12c025a892 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR02MB298 Subject: Fix for issue #72320 - compatibility breakage in 7.0.11 From: zeev@zend.com (Zeev Suraski) All, In 7.0.11, the behavior of iconv_substr() was changed so that if the length= argument is equal to the length of the string - an empty string is returne= d, as opposed to FALSE. While I think there's a case to be made that this makes sense - what worrie= s me is that we've introduced a behavioral change for a function in a bugfi= x release - one that has bitten us in Zend Framework - and I think it's saf= e to assume that it will affect plenty of other codebases. Personally, I think we should be *much* more selective about introducing be= havioral changes in maintenance releases, even if they can be considered bu= gfixes. Depending on their scope and impact, they should either go into th= e next mini version (this one probably falls in that category) or the next = major version. Of course - there are plenty of bugfixes where the existing= behavior is a crash, or undefined/unpredictable - those are obviously fine= to fix without further discussion. I'm talking about the cases where the = current behavior is very much defined and has been that way for a long time= , but for whatever reason, people think it should change. We've worked hard to establish trust that people can upgrade into the next = maintenance version with minimal testing - which greatly helps people keep = current with the latest and greatest fixes incl. security, and even the nex= t minor version with relatively limited testing, when we ensured downwards = compatibility within these versions. It does mean that our finger needs to= be a lot more hesitant on the trigger when we evaluate behavioral changes = such as these. It's arguably too late to revert this patch now, but I think it's a good op= portunity to discuss the guidelines for dealing with such issues. Thoughts? Zeev =20