Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #78535: auto_detect_line_endings value not parsed as bool
This commit is contained in:
Christoph M. Becker 2019-09-14 18:47:53 +02:00
commit d0247a63b6
5 changed files with 56 additions and 2 deletions

2
NEWS
View file

@ -7,6 +7,8 @@ PHP NEWS
As a side effect this allowed passign left hean list() "by reference", As a side effect this allowed passign left hean list() "by reference",
instead of compile-time error. (Dmitry) instead of compile-time error. (Dmitry)
. Fixed bug #78531 (Crash when using undefined variable as object). (Dmitry) . Fixed bug #78531 (Crash when using undefined variable as object). (Dmitry)
. Fixed bug #78535 (auto_detect_line_endings value not parsed as bool).
(bugreportuser)
- FFI: - FFI:
. Added missing FFI::isNull(). (Philip Hofstetter) . Added missing FFI::isNull(). (Philip Hofstetter)

View file

@ -163,7 +163,7 @@ PHP_INI_BEGIN()
STD_PHP_INI_ENTRY("user_agent", NULL, PHP_INI_ALL, OnUpdateString, user_agent, php_file_globals, file_globals) STD_PHP_INI_ENTRY("user_agent", NULL, PHP_INI_ALL, OnUpdateString, user_agent, php_file_globals, file_globals)
STD_PHP_INI_ENTRY("from", NULL, PHP_INI_ALL, OnUpdateString, from_address, php_file_globals, file_globals) STD_PHP_INI_ENTRY("from", NULL, PHP_INI_ALL, OnUpdateString, from_address, php_file_globals, file_globals)
STD_PHP_INI_ENTRY("default_socket_timeout", "60", PHP_INI_ALL, OnUpdateLong, default_socket_timeout, php_file_globals, file_globals) STD_PHP_INI_ENTRY("default_socket_timeout", "60", PHP_INI_ALL, OnUpdateLong, default_socket_timeout, php_file_globals, file_globals)
STD_PHP_INI_ENTRY("auto_detect_line_endings", "0", PHP_INI_ALL, OnUpdateLong, auto_detect_line_endings, php_file_globals, file_globals) STD_PHP_INI_ENTRY("auto_detect_line_endings", "0", PHP_INI_ALL, OnUpdateBool, auto_detect_line_endings, php_file_globals, file_globals)
PHP_INI_END() PHP_INI_END()
PHP_MINIT_FUNCTION(file) PHP_MINIT_FUNCTION(file)

View file

@ -117,7 +117,7 @@ php_meta_tags_token php_next_meta_token(php_meta_tags_data *);
typedef struct { typedef struct {
int pclose_ret; int pclose_ret;
size_t def_chunk_size; size_t def_chunk_size;
zend_long auto_detect_line_endings; zend_bool auto_detect_line_endings;
zend_long default_socket_timeout; zend_long default_socket_timeout;
char *user_agent; /* for the http wrapper */ char *user_agent; /* for the http wrapper */
char *from_address; /* for the ftp and http wrappers */ char *from_address; /* for the ftp and http wrappers */

View file

@ -0,0 +1,24 @@
--TEST--
auto_detect_line_endings --INI-- bool
--INI--
auto_detect_line_endings=on
--STDIN--
fooBar1 fooBar2 fooBar3
--FILE--
<?php
var_dump(ini_get("auto_detect_line_endings"));
var_dump(fgets(STDIN));
var_dump(fgets(STDIN));
var_dump(fgets(STDIN));
echo "Done\n";
?>
--EXPECTF--
string(1) "1"
string(8) "fooBar1 "
string(8) "fooBar2 "
string(8) "fooBar3
"
Done

View file

@ -0,0 +1,28 @@
--TEST--
ini_set auto_detect_line_endings bool
--FILE--
<?php
ini_set("auto_detect_line_endings", "on");
var_dump(ini_get("auto_detect_line_endings"));
$filePath = __DIR__ . DIRECTORY_SEPARATOR . "auto_detect_line_endings_2.txt";
file_put_contents($filePath, "fooBar1\rfooBar2\rfooBar3");
$stdin = fopen($filePath, "r");
var_dump(fgets($stdin));
var_dump(fgets($stdin));
var_dump(fgets($stdin));
echo "Done\n";
?>
--EXPECTF--
string(2) "on"
string(8) "fooBar1 "
string(8) "fooBar2 "
string(7) "fooBar3"
Done
--CLEAN--
<?php
unlink(__DIR__ . DIRECTORY_SEPARATOR . "auto_detect_line_endings_2.txt");
?>