From 5726e53b39be1eaff4867a0289fd277d90c11e38 Mon Sep 17 00:00:00 2001 From: Calvin Buckley Date: Tue, 30 Dec 2025 13:07:11 -0400 Subject: [PATCH 1/4] PHP 8.4 is now for PHP 8.4.18-dev --- NEWS | 6 +++++- Zend/zend.h | 2 +- configure.ac | 2 +- main/php_version.h | 6 +++--- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/NEWS b/NEWS index dc14c520d57a7..65f7465c8e351 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,10 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| -?? ??? ????, PHP 8.4.17 +?? ??? ????, PHP 8.4.18 + + + +15 Jan 2026, PHP 8.4.17 - Core: . Fix OSS-Fuzz #465488618 (Wrong assumptions when dumping function signature diff --git a/Zend/zend.h b/Zend/zend.h index 5267a4315f288..a3fbdf3c7c2af 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -20,7 +20,7 @@ #ifndef ZEND_H #define ZEND_H -#define ZEND_VERSION "4.4.17-dev" +#define ZEND_VERSION "4.4.18-dev" #define ZEND_ENGINE_3 diff --git a/configure.ac b/configure.ac index 38cab6ace89ad..e339666e91bfb 100644 --- a/configure.ac +++ b/configure.ac @@ -17,7 +17,7 @@ dnl Basic autoconf initialization, generation of config.nice. dnl ---------------------------------------------------------------------------- AC_PREREQ([2.68]) -AC_INIT([PHP],[8.4.17-dev],[https://github.com/php/php-src/issues],[php],[https://www.php.net]) +AC_INIT([PHP],[8.4.18-dev],[https://github.com/php/php-src/issues],[php],[https://www.php.net]) AC_CONFIG_SRCDIR([main/php_version.h]) AC_CONFIG_AUX_DIR([build]) AC_PRESERVE_HELP_ORDER diff --git a/main/php_version.h b/main/php_version.h index 03ef1f029d8d3..a508f5375c464 100644 --- a/main/php_version.h +++ b/main/php_version.h @@ -2,7 +2,7 @@ /* edit configure.ac to change version number */ #define PHP_MAJOR_VERSION 8 #define PHP_MINOR_VERSION 4 -#define PHP_RELEASE_VERSION 17 +#define PHP_RELEASE_VERSION 18 #define PHP_EXTRA_VERSION "-dev" -#define PHP_VERSION "8.4.17-dev" -#define PHP_VERSION_ID 80417 +#define PHP_VERSION "8.4.18-dev" +#define PHP_VERSION_ID 80418 From ab5c2a826a234c58c9b0423911a9f5a954a8eeb2 Mon Sep 17 00:00:00 2001 From: Jakub Zelenka Date: Tue, 30 Dec 2025 22:08:35 +0100 Subject: [PATCH 2/4] Use long conversion for stream context keepalive int values (#20805) This is consistent with http and ssl wrappers where int values are converted in this way. --- ext/openssl/xp_ssl.c | 4 +- .../tests/network/so_keepalive_string.phpt | 151 ++++++++++++++++++ main/streams/xp_socket.c | 22 +-- 3 files changed, 161 insertions(+), 16 deletions(-) create mode 100644 ext/standard/tests/network/so_keepalive_string.phpt diff --git a/ext/openssl/xp_ssl.c b/ext/openssl/xp_ssl.c index 482715c745554..f1d5883b76b4b 100644 --- a/ext/openssl/xp_ssl.c +++ b/ext/openssl/xp_ssl.c @@ -2231,9 +2231,9 @@ static inline int php_openssl_tcp_sockop_accept(php_stream *stream, php_openssl_ sockvals.tcp_nodelay = 1; } tmpzval = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), "socket", "tcp_keepidle"); - if (tmpzval != NULL && Z_TYPE_P(tmpzval) == IS_LONG) { + if (tmpzval != NULL) { sockvals.mask |= PHP_SOCKVAL_TCP_KEEPIDLE; - sockvals.keepalive.keepidle = Z_LVAL_P(tmpzval); + sockvals.keepalive.keepidle = (int)zval_get_long(tmpzval); } } diff --git a/ext/standard/tests/network/so_keepalive_string.phpt b/ext/standard/tests/network/so_keepalive_string.phpt new file mode 100644 index 0000000000000..19cb2f9c6dec9 --- /dev/null +++ b/ext/standard/tests/network/so_keepalive_string.phpt @@ -0,0 +1,151 @@ +--TEST-- +stream_socket_server() and stream_socket_client() keepalive option test with string values +--EXTENSIONS-- +sockets +--SKIPIF-- + +--FILE-- + [ + 'so_keepalive' => true, + 'tcp_keepidle' => '80', + 'tcp_keepintvl' => '12', + 'tcp_keepcnt' => '6', + ] +]); + +$server = stream_socket_server("tcp://127.0.0.1:0", $errno, $errstr, + STREAM_SERVER_BIND | STREAM_SERVER_LISTEN, $server_context); + +if (!$server) { + die('Unable to create server'); +} + +$addr = stream_socket_get_name($server, false); +$port = (int)substr(strrchr($addr, ':'), 1); + +// Test client with SO_KEEPALIVE enabled +$client_context = stream_context_create([ + 'socket' => [ + 'so_keepalive' => true, + 'tcp_keepidle' => '31', + 'tcp_keepintvl' => '6', + 'tcp_keepcnt' => '4', + ] +]); + +$client = stream_socket_client("tcp://127.0.0.1:$port", $errno, $errstr, 30, + STREAM_CLIENT_CONNECT, $client_context); + +if (!$client) { + die('Unable to create client'); +} + +$accepted = stream_socket_accept($server, 1); + +if (!$accepted) { + die('Unable to accept connection'); +} + +// Verify server side (accepted connection) +$server_sock = socket_import_stream($accepted); +$server_keepalive = socket_get_option($server_sock, SOL_SOCKET, SO_KEEPALIVE); +echo "Server SO_KEEPALIVE: " . ($server_keepalive ? "enabled" : "disabled") . "\n"; + +if (defined('TCP_KEEPIDLE')) { + $server_idle = socket_get_option($server_sock, SOL_TCP, TCP_KEEPIDLE); + echo "Server TCP_KEEPIDLE: $server_idle\n"; +} else { + $server_idle = socket_get_option($server_sock, SOL_TCP, TCP_KEEPALIVE); + echo "Server TCP_KEEPIDLE: $server_idle\n"; +} + +$server_intvl = socket_get_option($server_sock, SOL_TCP, TCP_KEEPINTVL); +echo "Server TCP_KEEPINTVL: $server_intvl\n"; + +$server_cnt = socket_get_option($server_sock, SOL_TCP, TCP_KEEPCNT); +echo "Server TCP_KEEPCNT: $server_cnt\n"; + +// Verify client side +$client_sock = socket_import_stream($client); +$client_keepalive = socket_get_option($client_sock, SOL_SOCKET, SO_KEEPALIVE); +echo "Client SO_KEEPALIVE: " . ($client_keepalive ? "enabled" : "disabled") . "\n"; + +if (defined('TCP_KEEPIDLE')) { + $client_idle = socket_get_option($client_sock, SOL_TCP, TCP_KEEPIDLE); + echo "Client TCP_KEEPIDLE: $client_idle\n"; +} else { + $client_idle = socket_get_option($client_sock, SOL_TCP, TCP_KEEPALIVE); + echo "Client TCP_KEEPIDLE: $client_idle\n"; +} + +$client_intvl = socket_get_option($client_sock, SOL_TCP, TCP_KEEPINTVL); +echo "Client TCP_KEEPINTVL: $client_intvl\n"; + +$client_cnt = socket_get_option($client_sock, SOL_TCP, TCP_KEEPCNT); +echo "Client TCP_KEEPCNT: $client_cnt\n"; + +fclose($accepted); +fclose($client); +fclose($server); + +// Test server with SO_KEEPALIVE disabled +$server2_context = stream_context_create(['socket' => ['so_keepalive' => false]]); +$server2 = stream_socket_server("tcp://127.0.0.1:0", $errno, $errstr, + STREAM_SERVER_BIND | STREAM_SERVER_LISTEN, $server2_context); + +$addr2 = stream_socket_get_name($server2, false); +$port2 = (int)substr(strrchr($addr2, ':'), 1); + +$client2 = stream_socket_client("tcp://127.0.0.1:$port2"); +$accepted2 = stream_socket_accept($server2, 1); + +$server2_sock = socket_import_stream($accepted2); +$server2_keepalive = socket_get_option($server2_sock, SOL_SOCKET, SO_KEEPALIVE); +echo "Server disabled SO_KEEPALIVE: " . ($server2_keepalive ? "enabled" : "disabled") . "\n"; + +fclose($accepted2); +fclose($client2); +fclose($server2); + +// Test client with SO_KEEPALIVE disabled +$server3 = stream_socket_server("tcp://127.0.0.1:0", $errno, $errstr, + STREAM_SERVER_BIND | STREAM_SERVER_LISTEN); + +$addr3 = stream_socket_get_name($server3, false); +$port3 = (int)substr(strrchr($addr3, ':'), 1); + +$client3_context = stream_context_create(['socket' => ['so_keepalive' => false]]); +$client3 = stream_socket_client("tcp://127.0.0.1:$port3", $errno, $errstr, 30, + STREAM_CLIENT_CONNECT, $client3_context); + +$client3_sock = socket_import_stream($client3); +$client3_keepalive = socket_get_option($client3_sock, SOL_SOCKET, SO_KEEPALIVE); +echo "Client disabled SO_KEEPALIVE: " . ($client3_keepalive ? "enabled" : "disabled") . "\n"; + +fclose($client3); +fclose($server3); +?> +--EXPECT-- +Server SO_KEEPALIVE: enabled +Server TCP_KEEPIDLE: 80 +Server TCP_KEEPINTVL: 12 +Server TCP_KEEPCNT: 6 +Client SO_KEEPALIVE: enabled +Client TCP_KEEPIDLE: 31 +Client TCP_KEEPINTVL: 6 +Client TCP_KEEPCNT: 4 +Server disabled SO_KEEPALIVE: disabled +Client disabled SO_KEEPALIVE: disabled diff --git a/main/streams/xp_socket.c b/main/streams/xp_socket.c index 7a7f007f9183d..edf1751ec33b5 100644 --- a/main/streams/xp_socket.c +++ b/main/streams/xp_socket.c @@ -764,30 +764,27 @@ static inline int php_tcp_sockop_bind(php_stream *stream, php_netstream_data_t * #if defined(TCP_KEEPIDLE) || defined(TCP_KEEPALIVE) if (PHP_STREAM_CONTEXT(stream) && (tmpzval = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), "socket", "tcp_keepidle")) != NULL - && Z_TYPE_P(tmpzval) == IS_LONG ) { sockvals.mask |= PHP_SOCKVAL_TCP_KEEPIDLE; - sockvals.keepalive.keepidle = (int)Z_LVAL_P(tmpzval); + sockvals.keepalive.keepidle = (int)zval_get_long(tmpzval); } #endif #ifdef TCP_KEEPINTVL if (PHP_STREAM_CONTEXT(stream) && (tmpzval = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), "socket", "tcp_keepintvl")) != NULL - && Z_TYPE_P(tmpzval) == IS_LONG ) { sockvals.mask |= PHP_SOCKVAL_TCP_KEEPINTVL; - sockvals.keepalive.keepintvl = (int)Z_LVAL_P(tmpzval); + sockvals.keepalive.keepintvl = (int)zval_get_long(tmpzval); } #endif #ifdef TCP_KEEPCNT if (PHP_STREAM_CONTEXT(stream) && (tmpzval = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), "socket", "tcp_keepcnt")) != NULL - && Z_TYPE_P(tmpzval) == IS_LONG ) { sockvals.mask |= PHP_SOCKVAL_TCP_KEEPCNT; - sockvals.keepalive.keepcnt = (int)Z_LVAL_P(tmpzval); + sockvals.keepalive.keepcnt = (int)zval_get_long(tmpzval); } #endif } @@ -895,30 +892,27 @@ static inline int php_tcp_sockop_connect(php_stream *stream, php_netstream_data_ #if defined(TCP_KEEPIDLE) || defined(TCP_KEEPALIVE) if (PHP_STREAM_CONTEXT(stream) && (tmpzval = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), "socket", "tcp_keepidle")) != NULL - && Z_TYPE_P(tmpzval) == IS_LONG ) { sockvals.mask |= PHP_SOCKVAL_TCP_KEEPIDLE; - sockvals.keepalive.keepidle = (int)Z_LVAL_P(tmpzval); + sockvals.keepalive.keepidle = (int)zval_get_long(tmpzval); } #endif #ifdef TCP_KEEPINTVL if (PHP_STREAM_CONTEXT(stream) && (tmpzval = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), "socket", "tcp_keepintvl")) != NULL - && Z_TYPE_P(tmpzval) == IS_LONG ) { sockvals.mask |= PHP_SOCKVAL_TCP_KEEPINTVL; - sockvals.keepalive.keepintvl = (int)Z_LVAL_P(tmpzval); + sockvals.keepalive.keepintvl = (int)zval_get_long(tmpzval); } #endif #ifdef TCP_KEEPCNT if (PHP_STREAM_CONTEXT(stream) && (tmpzval = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), "socket", "tcp_keepcnt")) != NULL - && Z_TYPE_P(tmpzval) == IS_LONG ) { sockvals.mask |= PHP_SOCKVAL_TCP_KEEPCNT; - sockvals.keepalive.keepcnt = (int)Z_LVAL_P(tmpzval); + sockvals.keepalive.keepcnt = (int)zval_get_long(tmpzval); } #endif } @@ -976,9 +970,9 @@ static inline int php_tcp_sockop_accept(php_stream *stream, php_netstream_data_t sockvals.tcp_nodelay = 1; } tmpzval = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), "socket", "tcp_keepidle"); - if (tmpzval != NULL && Z_TYPE_P(tmpzval) == IS_LONG) { + if (tmpzval != NULL) { sockvals.mask |= PHP_SOCKVAL_TCP_KEEPIDLE; - sockvals.keepalive.keepidle = Z_LVAL_P(tmpzval); + sockvals.keepalive.keepidle = (int)zval_get_long(tmpzval); } } From daf4d54610e920f9f7c778b264b1b42371f9db00 Mon Sep 17 00:00:00 2001 From: Daniel Scherzer Date: Tue, 30 Dec 2025 14:27:29 -0800 Subject: [PATCH 3/4] PHP-8.5 is now for PHP 8.5.3-dev --- NEWS | 6 +++++- Zend/zend.h | 2 +- configure.ac | 2 +- main/php_version.h | 6 +++--- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/NEWS b/NEWS index f71cde89af443..c8ac6f1990cb4 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,10 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| -?? ??? ????, PHP 8.5.2 +?? ??? ????, PHP 8.5.3 + + + +15 Jan 2026, PHP 8.5.2 - Core: . Fix OSS-Fuzz #465488618 (Wrong assumptions when dumping function signature diff --git a/Zend/zend.h b/Zend/zend.h index 596178d8c604c..e5f0ba534cba3 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -20,7 +20,7 @@ #ifndef ZEND_H #define ZEND_H -#define ZEND_VERSION "4.5.2-dev" +#define ZEND_VERSION "4.5.3-dev" #define ZEND_ENGINE_3 diff --git a/configure.ac b/configure.ac index ecff21dad0aa6..19126ac1bc39e 100644 --- a/configure.ac +++ b/configure.ac @@ -17,7 +17,7 @@ dnl Basic autoconf initialization, generation of config.nice. dnl ---------------------------------------------------------------------------- AC_PREREQ([2.68]) -AC_INIT([PHP],[8.5.2-dev],[https://github.com/php/php-src/issues],[php],[https://www.php.net]) +AC_INIT([PHP],[8.5.3-dev],[https://github.com/php/php-src/issues],[php],[https://www.php.net]) AC_CONFIG_SRCDIR([main/php_version.h]) AC_CONFIG_AUX_DIR([build]) AC_PRESERVE_HELP_ORDER diff --git a/main/php_version.h b/main/php_version.h index 659b07639e5fb..d0a1f48a23fb2 100644 --- a/main/php_version.h +++ b/main/php_version.h @@ -2,7 +2,7 @@ /* edit configure.ac to change version number */ #define PHP_MAJOR_VERSION 8 #define PHP_MINOR_VERSION 5 -#define PHP_RELEASE_VERSION 2 +#define PHP_RELEASE_VERSION 3 #define PHP_EXTRA_VERSION "-dev" -#define PHP_VERSION "8.5.2-dev" -#define PHP_VERSION_ID 80502 +#define PHP_VERSION "8.5.3-dev" +#define PHP_VERSION_ID 80503 From 4f793ba1c323210171574bfc94d2ac2b81a666f2 Mon Sep 17 00:00:00 2001 From: Weilin Du <108666168+LamentXU123@users.noreply.github.com> Date: Wed, 31 Dec 2025 09:22:09 +0800 Subject: [PATCH 4/4] [skip ci] Fix duplicate words typos (GH-20800) --- Zend/zend_verify_type_inference.h | 2 +- docs/source/miscellaneous/writing-tests.rst | 6 +++--- ext/fileinfo/tests/magic | 2 +- ...201\271\343\202\211\343\202\214\343\201\276\343\201\231" | 2 +- ext/gd/gd.c | 2 +- .../03_randomizer/methods/getBytesFromString_fast_path.phpt | 6 +++--- sapi/fpm/fpm/events/kqueue.c | 2 +- scripts/dev/bless_tests.php | 2 +- win32/sendmail.c | 2 +- 9 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Zend/zend_verify_type_inference.h b/Zend/zend_verify_type_inference.h index 0add01933495f..8e9cbcbc181f1 100644 --- a/Zend/zend_verify_type_inference.h +++ b/Zend/zend_verify_type_inference.h @@ -156,7 +156,7 @@ static void zend_verify_inference_def(zend_execute_data *execute_data, const zen } if (opline->op1_def_type && (opline->op1_type & (IS_TMP_VAR|IS_VAR|IS_CV)) - // array is actually changed by the the following instruction(s) + // array is actually changed by the following instruction(s) && opline->opcode != ZEND_FETCH_DIM_W && opline->opcode != ZEND_FETCH_DIM_RW && opline->opcode != ZEND_FETCH_DIM_FUNC_ARG diff --git a/docs/source/miscellaneous/writing-tests.rst b/docs/source/miscellaneous/writing-tests.rst index 4c46dad638b6c..8c4e0535763cc 100644 --- a/docs/source/miscellaneous/writing-tests.rst +++ b/docs/source/miscellaneous/writing-tests.rst @@ -1389,7 +1389,7 @@ Example 1 (full): :ref:`sample002.phpt` ``--EXPECT_EXTERNAL--`` ----------------------- -**Description:** Similar to to ``--EXPECT--`` section, but just stating a filename where to load the +**Description:** Similar to ``--EXPECT--`` section, but just stating a filename where to load the expected output from. **Required:** One of the ``EXPECT`` type sections is required. @@ -1526,7 +1526,7 @@ Example 2 (full): :ref:`sample020.phpt` ``--EXPECTF_EXTERNAL--`` ------------------------ -**Description:** Similar to to ``--EXPECTF--`` section, but like the ``--EXPECT_EXTERNAL--`` section +**Description:** Similar to ``--EXPECTF--`` section, but like the ``--EXPECT_EXTERNAL--`` section just stating a filename where to load the expected output from. **Required:** One of the ``EXPECT`` type sections is required. @@ -1607,7 +1607,7 @@ Example 3 (snippet): ``--EXPECTREGEX_EXTERNAL--`` ---------------------------- -**Description:** Similar to to ``--EXPECTREGEX--`` section, but like the ``--EXPECT_EXTERNAL--`` +**Description:** Similar to ``--EXPECTREGEX--`` section, but like the ``--EXPECT_EXTERNAL--`` section just stating a filename where to load the expected output from. **Required:** One of the ``EXPECT`` type sections is required. diff --git a/ext/fileinfo/tests/magic b/ext/fileinfo/tests/magic index e8ad0f0ce7843..c8783aea05c71 100644 --- a/ext/fileinfo/tests/magic +++ b/ext/fileinfo/tests/magic @@ -39944,7 +39944,7 @@ # look for archive member RunTime.xml like in Microsoft.Windows.Cosa.Desktop.Client.ppkg >>>156 search/68233/s RunTime.xml \bWindows provisioning package) !:ext ppkg -# if is is not a Windows provisioning package, then it is a WIM +# if it is not a Windows provisioning package, then it is a WIM >>>156 default x \bWIM) image # second disk image part created by Microsoft's RecoveryDrive.exe has name Reconstruct.WIM2 !:ext wim/wim2 diff --git "a/ext/fileinfo/tests/magic\347\247\201\343\201\257\343\202\254\343\203\251\343\202\271\343\202\222\351\243\237\343\201\271\343\202\211\343\202\214\343\201\276\343\201\231" "b/ext/fileinfo/tests/magic\347\247\201\343\201\257\343\202\254\343\203\251\343\202\271\343\202\222\351\243\237\343\201\271\343\202\211\343\202\214\343\201\276\343\201\231" index e8ad0f0ce7843..c8783aea05c71 100644 --- "a/ext/fileinfo/tests/magic\347\247\201\343\201\257\343\202\254\343\203\251\343\202\271\343\202\222\351\243\237\343\201\271\343\202\211\343\202\214\343\201\276\343\201\231" +++ "b/ext/fileinfo/tests/magic\347\247\201\343\201\257\343\202\254\343\203\251\343\202\271\343\202\222\351\243\237\343\201\271\343\202\211\343\202\214\343\201\276\343\201\231" @@ -39944,7 +39944,7 @@ # look for archive member RunTime.xml like in Microsoft.Windows.Cosa.Desktop.Client.ppkg >>>156 search/68233/s RunTime.xml \bWindows provisioning package) !:ext ppkg -# if is is not a Windows provisioning package, then it is a WIM +# if it is not a Windows provisioning package, then it is a WIM >>>156 default x \bWIM) image # second disk image part created by Microsoft's RecoveryDrive.exe has name Reconstruct.WIM2 !:ext wim/wim2 diff --git a/ext/gd/gd.c b/ext/gd/gd.c index 60b2ad65bf65e..135cff7fcc639 100644 --- a/ext/gd/gd.c +++ b/ext/gd/gd.c @@ -4309,7 +4309,7 @@ PHP_FUNCTION(imageresolution) * * Stream Handling * Formerly contained within ext/gd/gd_ctx.c and included - * at the the top of this file + * at the top of this file * ********************************************************/ diff --git a/ext/random/tests/03_randomizer/methods/getBytesFromString_fast_path.phpt b/ext/random/tests/03_randomizer/methods/getBytesFromString_fast_path.phpt index 84c8ec611db80..7d7b98f1b27a9 100644 --- a/ext/random/tests/03_randomizer/methods/getBytesFromString_fast_path.phpt +++ b/ext/random/tests/03_randomizer/methods/getBytesFromString_fast_path.phpt @@ -41,7 +41,7 @@ for ($i = 1; $i <= strlen($allBytes); $i *= 2) { } // We also expect that each possible value appears at least once, if - // not is is very likely that some bits were erroneously masked away. + // not it is very likely that some bits were erroneously masked away. var_dump(count($count)); echo PHP_EOL; @@ -67,7 +67,7 @@ for ($i = 1; ($i + 1) <= strlen($allBytes); $i *= 2) { } // We expect that each possible value appears at least once, if - // not is is very likely that some bits were erroneously masked away. + // not it is very likely that some bits were erroneously masked away. var_dump(count($count)); echo PHP_EOL; @@ -90,7 +90,7 @@ for ($j = 0; $j < strlen($result); $j++) { } // We also expect that each possible value appears at least once, if -// not is is very likely that some bits were erroneously masked away. +// not it is very likely that some bits were erroneously masked away. var_dump(count($count)); ?> diff --git a/sapi/fpm/fpm/events/kqueue.c b/sapi/fpm/fpm/events/kqueue.c index 09f5da12799be..21939d3414182 100644 --- a/sapi/fpm/fpm/events/kqueue.c +++ b/sapi/fpm/fpm/events/kqueue.c @@ -150,7 +150,7 @@ static int fpm_event_kqueue_wait(struct fpm_event_queue_s *queue, unsigned long /* }}} */ /* - * Add a FD to to kevent queue + * Add a FD to kevent queue */ static int fpm_event_kqueue_add(struct fpm_event_s *ev) /* {{{ */ { diff --git a/scripts/dev/bless_tests.php b/scripts/dev/bless_tests.php index 58baeac402462..7493a504729c4 100755 --- a/scripts/dev/bless_tests.php +++ b/scripts/dev/bless_tests.php @@ -124,7 +124,7 @@ function insertOutput(string $phpt, string $out): string { } /** - * Implementation of the the Myers diff algorithm. + * Implementation of the Myers diff algorithm. * * Myers, Eugene W. "An O (ND) difference algorithm and its variations." * Algorithmica 1.1 (1986): 251-266. diff --git a/win32/sendmail.c b/win32/sendmail.c index 394676f30316d..f267d1fae85ab 100644 --- a/win32/sendmail.c +++ b/win32/sendmail.c @@ -121,7 +121,7 @@ static int Ack(char **server_response); static unsigned long GetAddr(LPSTR szHost); static int FormatEmailAddress(char* Buf, char* EmailAddress, char* FormatString); -/* This function is meant to unify the headers passed to to mail() +/* This function is meant to unify the headers passed to mail() * This means, use PCRE to transform single occurrences of \n or \r in \r\n * As a second step we also eliminate all \r\n occurrences which are: * 1) At the start of the header