|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #78118 preg match error
Submitted: 2019-06-05 20:18 UTC Modified: 2019-06-11 16:26 UTC
From: v-altruo at microsoft dot com Assigned: cmb (profile)
Status: Assigned Package: Testing related
PHP Version: 7.3.6 OS: Windows
Private report: No CVE-ID: None
Have you experienced this issue?
Rate the importance of this bug to you:

 [2019-06-05 20:18 UTC] v-altruo at microsoft dot com
Test fails for TS build only regardless of opcache on/off.

Test File location: tests\basic\bug71273.phpt 

Test script:
	/* NOTE this file is required to be encoded in iso-8859-1 */

	$cmd = getenv('TEST_PHP_EXECUTABLE') . " -n -d html_errors=on -d extension_dir=a/é/w -d extension=php_kartoffelbrei.dll -v 2>&1";
	$out = shell_exec($cmd);

	var_dump(preg_match(",.+a[\\/].+[\\/]w.php_kartoffelbrei.dll.+,s", $out));

Expected result:

Actual result:


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2019-06-05 23:21 UTC]
-Status: Open +Status: Feedback -Assigned To: +Assigned To: cmb
 [2019-06-05 23:21 UTC]
Thanks for reporting!  I cannot reproduce this test
failure,though.  Looking at the posted test script, there might be
an issue regarding the character encoding, since the extension_dir
is a/é/w (UTF-8), but the comment above states that the file is
required to be encoded in iso-8859-1.  Can you please
double-check, that the file's encoding is what it is supposed to
be?  Furthermore, for debugging purposes, it might be helpful to
insert a `var_dump($out);` after `$out = shell_exec($cmd);` to be
able to see in bug71273.out what was actually reported by PHP.
 [2019-06-06 00:13 UTC] v-altruo at microsoft dot com
-Status: Feedback +Status: Assigned
 [2019-06-06 00:13 UTC] v-altruo at microsoft dot com
I checked the file encoding with git bash and it says it's encoded in ISO-8859. Since this test passes on the NTS builds, I checked what the file was encoded for that and it is ISO-8859. So I believe the file being encoded as ISO-8859 is correct. 

The output after adding 'var_dump($out)' for TS builds: 

Compared to NTS builds: 
string(450) "PHP Warning:  PHP Startup: Unable to load dynamic library 'php_kartoffelbrei.dll' (tried: a/�/w\php_kartoffelbrei.dll (The specified module could not be found.), a/�/w\php_php_kartoffelbrei.dll.dll (The specified module could not be found.)) in Unknown on line 0
PHP 7.3.6 (cli) (built: May 29 2019 12:12:14) ( NTS MSVC15 (Visual C++ 2017) x64 )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.6, Copyright (c) 1998-2018 Zend Technologies
 [2019-06-11 16:26 UTC]
Thanks for checking!

Unless being able to reproduce the test failure, I can only guess
that php_escape_html_entities() with ENT_HTML_SUBSTITUTE_ERRORS[1]
fails.  This needs further investigation.

[1] <>
PHP Copyright © 2001-2019 The PHP Group
All rights reserved.
Last updated: Sun Jun 16 21:01:28 2019 UTC