]> granicus.if.org Git - php/log
php
4 years agoMerge branch 'PHP-8.0'
Christoph M. Becker [Wed, 23 Dec 2020 15:47:32 +0000 (16:47 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Add regression test for bug #76770

4 years agoAdd regression test for bug #76770
Semen Dubina [Mon, 10 Sep 2018 22:26:02 +0000 (01:26 +0300)]
Add regression test for bug #76770

Closes GH-3514.

4 years agoMerge branch 'PHP-8.0'
Christoph M. Becker [Wed, 23 Dec 2020 12:53:19 +0000 (13:53 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Fix #80384: limit read buffer size

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Wed, 23 Dec 2020 12:52:24 +0000 (13:52 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix #80384: limit read buffer size

4 years agoFix #80384: limit read buffer size
Adam Seitz [Tue, 1 Dec 2020 23:40:16 +0000 (00:40 +0100)]
Fix #80384: limit read buffer size

In the case of a stream with no filters, php_stream_fill_read_buffer
only reads stream->chunk_size into the read buffer. If the stream has
filters attached, it could unnecessarily buffer a large amount of data.

With this change, php_stream_fill_read_buffer only proceeds until either
the requested size or stream->chunk_size is available in the read buffer.

Co-authored-by: Christoph M. Becker <cmbecker69@gmx.de>
Closes GH-6444.

4 years agoSupport native types in PDO SQLite
Nikita Popov [Wed, 23 Dec 2020 09:57:19 +0000 (10:57 +0100)]
Support native types in PDO SQLite

Return integers and floats as native types if possible. As usual,
the old behavior can be restored by enabling ATTR_STRINGIFY_FETCHES.

Fixes bug #38334.

4 years agoFTP: Disallow direct `FTPConnection` construction
Ayesh Karunaratne [Tue, 22 Dec 2020 19:58:51 +0000 (02:58 +0700)]
FTP: Disallow direct `FTPConnection` construction

Similar to other resource to object migrations, `FTPConnection` class is not allowed to be constructed with `new FTPConnection`.
Related to b4503fbf882e490f16d85915e83173bd1e414e84.

Closes GH-6533.

4 years agoEXPECTF imap_errors() test's authentication error
George Peter Banyard [Tue, 22 Dec 2020 22:14:11 +0000 (23:14 +0100)]
EXPECTF imap_errors() test's authentication error

4 years agoMake imap_errors() test no hang
George Peter Banyard [Tue, 22 Dec 2020 18:46:48 +0000 (19:46 +0100)]
Make imap_errors() test no hang

Instead of attempting to connect with an invalid password, connect as an anonymous user.
As this is disabled in our Dovecot configuration, this generates an error, and fails fast.

4 years agoOptimize Dovecot configuration for IMAP tests
George Peter Banyard [Tue, 22 Dec 2020 18:52:36 +0000 (19:52 +0100)]
Optimize Dovecot configuration for IMAP tests

Closes GH-6531

4 years agoRewrite PDO result binding
Nikita Popov [Thu, 17 Dec 2020 11:05:37 +0000 (12:05 +0100)]
Rewrite PDO result binding

Instead of requiring the type to be determined in advance by the
describer function and then requiring get_col to return a buffer
of appropriate type, allow get_col to return an arbitrary zval.
See UPGRADING.INTERNALS for a more detailed description of the
change.

This makes the result fetching simpler, more efficient and more
flexible. The general possibility already existed via the special
PDO_PARAM_ZVAL type, but the usage was very inconvenient and/or
inefficient. Now it's possible to easily implement behavior like
"return int if it fits, otherwise string" and to avoid any kind
of complex management of temporary buffers.

This also fixes bug #40913 (our second highest voted bug of all
time, for some reason). PARAM_LOB result bindings will now
consistently return a stream resource, independently of the used
database driver.

I've tried my best to update all PDO drivers for this change, but
some of the changes may be broken, as I cannot test or even build
some of these drivers (in particular PDO dblib and PDO oci).
Fixes are appreciated -- a working CI setup would be even more
appreciated ;)

4 years agoDon't use explicitly nullable column in bug_73234.phpt
Nikita Popov [Tue, 22 Dec 2020 09:34:54 +0000 (10:34 +0100)]
Don't use explicitly nullable column in bug_73234.phpt

Firebird doesn't support this. It is nullable by default.

The test still fails, but now for a legitimate reason...

4 years agoAdd CONFLICTS file for PDO firebird tests
Nikita Popov [Tue, 22 Dec 2020 09:31:35 +0000 (10:31 +0100)]
Add CONFLICTS file for PDO firebird tests

4 years agoFix bug_69356.phpt for firebird
Nikita Popov [Tue, 22 Dec 2020 09:26:07 +0000 (10:26 +0100)]
Fix bug_69356.phpt for firebird

Firebird does not support selecting without a table. Use the same
code we use elsewhere, which adds "FROM DUAL" or "FROM RDS$DATABASE"
as necessary.

4 years agoPDO Firebird: Use recreate table
Nikita Popov [Tue, 22 Dec 2020 09:03:57 +0000 (10:03 +0100)]
PDO Firebird: Use recreate table

Firebird does not have "if exists", and the switch to exception
error mode broke the suppressed exec calls.

Firebird does have a "recreate table" command that effective
perform a "drop table if exists" beforehand.

4 years agoSuppress zend_signals warnings if pdo_firebird loaded
Nikita Popov [Tue, 22 Dec 2020 08:58:24 +0000 (09:58 +0100)]
Suppress zend_signals warnings if pdo_firebird loaded

4 years agoAdd IMAP resource to object conversion to UPGRADING
George Peter Banyard [Tue, 22 Dec 2020 02:09:00 +0000 (03:09 +0100)]
Add IMAP resource to object conversion to UPGRADING

4 years agoConvert IMAP resource to object
George Peter Banyard [Tue, 10 Nov 2020 11:03:53 +0000 (11:03 +0000)]
Convert IMAP resource to object

Closes GH-6418

4 years agoBuild PDO Firebird on Azure
Nikita Popov [Mon, 21 Dec 2020 17:45:08 +0000 (18:45 +0100)]
Build PDO Firebird on Azure

Once again, this only builds the driver, all tests will be skipped.

Closes GH-6529.

4 years agoShow slow SKIPIF sections as well
Nikita Popov [Tue, 25 Aug 2020 12:53:18 +0000 (14:53 +0200)]
Show slow SKIPIF sections as well

4 years agoPDO Firebird: Fix uninitialized var warning
Nikita Popov [Mon, 21 Dec 2020 19:04:26 +0000 (20:04 +0100)]
PDO Firebird: Fix uninitialized var warning

4 years agoBuild PDO odbc on azure
Nikita Popov [Mon, 21 Dec 2020 15:26:10 +0000 (16:26 +0100)]
Build PDO odbc on azure

We already install the necessary libs for the odbc extension, so
we may as well build PDO ODBC.

As we don't setup an ODBC server, the tests will be skipped.

Close GH-6528.

4 years agoPDO: Honor ATTR_STRINGIFY_FETCHES for booleans
Nikita Popov [Mon, 21 Dec 2020 14:31:15 +0000 (15:31 +0100)]
PDO: Honor ATTR_STRINGIFY_FETCHES for booleans

Of the important PDO drivers, this affects only PDO PgSQL, as
both MySQL and SQLite do not return native boolean types.

4 years agoMerge branch 'PHP-8.0' into master
Derick Rethans [Mon, 21 Dec 2020 10:31:51 +0000 (10:31 +0000)]
Merge branch 'PHP-8.0' into master

4 years agoFixed bug #80376 (last day of the month causes runway cpu usage)
Derick Rethans [Mon, 21 Dec 2020 10:31:41 +0000 (10:31 +0000)]
Fixed bug #80376 (last day of the month causes runway cpu usage)

4 years agoFixed bug #80376 (last day of the month causes runway cpu usage)
Derick Rethans [Mon, 21 Dec 2020 10:30:40 +0000 (10:30 +0000)]
Fixed bug #80376 (last day of the month causes runway cpu usage)

4 years agoMerge branch 'PHP-8.0'
Nikita Popov [Mon, 21 Dec 2020 09:23:42 +0000 (10:23 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Fix bug #80537

4 years agoFix bug #80537
Nikita Popov [Mon, 21 Dec 2020 09:21:08 +0000 (10:21 +0100)]
Fix bug #80537

This is an unavoidable breaking change to both the type and
parameter name.

The assertion that was supposed to prevent this was overly lax
and accepted any object type for string parameters.

4 years agoMerge branch 'PHP-8.0'
Christopher Jones [Mon, 21 Dec 2020 04:47:06 +0000 (15:47 +1100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Description typo

4 years agoDescription typo
Christopher Jones [Mon, 21 Dec 2020 04:46:26 +0000 (15:46 +1100)]
Description typo

4 years agoMerge branch 'PHP-8.0'
Christopher Jones [Mon, 21 Dec 2020 04:38:35 +0000 (15:38 +1100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Bundle PECL OCI8 3.0.1

4 years agoBundle PECL OCI8 3.0.1
Christopher Jones [Mon, 21 Dec 2020 04:15:16 +0000 (15:15 +1100)]
Bundle PECL OCI8 3.0.1

4 years agoMerge branch 'PHP-8.0'
Christopher Jones [Mon, 21 Dec 2020 04:08:40 +0000 (15:08 +1100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Retrofit NEWS

4 years agoRetrofit NEWS
Christopher Jones [Mon, 21 Dec 2020 04:07:40 +0000 (15:07 +1100)]
Retrofit NEWS

4 years agoMerge branch 'PHP-8.0'
Christoph M. Becker [Sun, 20 Dec 2020 22:07:34 +0000 (23:07 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Revert "DateTime:: and DateTimeImmutable::getTimestamp() may return false"

4 years agoRevert "DateTime:: and DateTimeImmutable::getTimestamp() may return false"
Christoph M. Becker [Sun, 20 Dec 2020 22:07:02 +0000 (23:07 +0100)]
Revert "DateTime:: and DateTimeImmutable::getTimestamp() may return false"

This reverts commit b67c23218950eae0a153b093dcefbe14b3b40901.

4 years agoMerge branch 'PHP-8.0'
Christoph M. Becker [Sun, 20 Dec 2020 18:32:36 +0000 (19:32 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  DateTime:: and DateTimeImmutable::getTimestamp() may return false

4 years agoDateTime:: and DateTimeImmutable::getTimestamp() may return false
Christoph M. Becker [Sun, 20 Dec 2020 18:32:12 +0000 (19:32 +0100)]
DateTime:: and DateTimeImmutable::getTimestamp() may return false

4 years agoConvert file_info resources to objects
Christoph M. Becker [Fri, 18 Dec 2020 18:10:53 +0000 (19:10 +0100)]
Convert file_info resources to objects

Besides our general desire to get rid of the legacy resource types,
this is particularly appealing for fileinfo, because there are already
respective objects.

Closes GH-5987.

4 years agoMerge branch 'PHP-8.0'
Christoph M. Becker [Sun, 20 Dec 2020 17:14:40 +0000 (18:14 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Fix ext/date stubs

4 years agoFix ext/date stubs
Christoph M. Becker [Wed, 9 Dec 2020 15:51:53 +0000 (16:51 +0100)]
Fix ext/date stubs

Closes GH-6523.

4 years agoFix leak
Nikita Popov [Fri, 18 Dec 2020 20:48:21 +0000 (21:48 +0100)]
Fix leak

4 years agoBack memory stream by a zend_string
Nikita Popov [Fri, 18 Dec 2020 16:07:07 +0000 (17:07 +0100)]
Back memory stream by a zend_string

This allows reusing an existing zend_string inside a memory stream
without reallocating. For non-readonly streams, the string will
only get separated on write.

4 years agoRemove unused smax member from memory stream
Nikita Popov [Fri, 18 Dec 2020 15:40:23 +0000 (16:40 +0100)]
Remove unused smax member from memory stream

4 years agoRemove unused pdo_pgsql_column member
Nikita Popov [Fri, 18 Dec 2020 14:50:59 +0000 (15:50 +0100)]
Remove unused pdo_pgsql_column member

4 years agoTry to fix azure pipelines config
Nikita Popov [Fri, 18 Dec 2020 13:05:52 +0000 (14:05 +0100)]
Try to fix azure pipelines config

Is this space the problem?

4 years agoAdd basic libmysqlclient CI job
Nikita Popov [Fri, 18 Sep 2020 09:32:05 +0000 (11:32 +0200)]
Add basic libmysqlclient CI job

This tests that mysqli and pdo_mysql build against libmysqlclient,
and that tests pass for pdo_mysql. mysqli has too many test failures.

This is not an officially supported configuration.

4 years agoMove fetch_all implementation out of mysqlnd
Nikita Popov [Fri, 18 Dec 2020 11:13:17 +0000 (12:13 +0100)]
Move fetch_all implementation out of mysqlnd

There doesn't seem to be any compelling reason to implement this
in mysqlnd rather than mysqli. It's just a loop over fetch_into.

This makes the function available under libmysqlclient as well,
and thus fixes bug #79372.

4 years agoMake mysqli_stmt_next_result available under libmysql
Nikita Popov [Fri, 18 Dec 2020 10:27:10 +0000 (11:27 +0100)]
Make mysqli_stmt_next_result available under libmysql

The libmysqlclient version we require supports mysql_stmt_next_result.

4 years agoPDO MySQL: Make test libmysql compatible
Nikita Popov [Fri, 18 Dec 2020 10:08:21 +0000 (11:08 +0100)]
PDO MySQL: Make test libmysql compatible

4 years agoMerge branch 'PHP-8.0'
Nikita Popov [Fri, 18 Dec 2020 10:02:36 +0000 (11:02 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  PDO MySQL: Handle boolean parameter binding with libmysql

4 years agoPDO MySQL: Handle boolean parameter binding with libmysql
Nikita Popov [Fri, 18 Sep 2020 15:46:42 +0000 (17:46 +0200)]
PDO MySQL: Handle boolean parameter binding with libmysql

Previously boolean parameters were simply silently ignored...

4 years agoMerge branch 'PHP-8.0'
Nikita Popov [Fri, 18 Dec 2020 09:20:55 +0000 (10:20 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  MySQLnd: Support cursors in store/get result

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Nikita Popov [Fri, 18 Dec 2020 09:20:13 +0000 (10:20 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  MySQLnd: Support cursors in store/get result

4 years agoMySQLnd: Support cursors in store/get result
Nikita Popov [Wed, 16 Dec 2020 11:12:06 +0000 (12:12 +0100)]
MySQLnd: Support cursors in store/get result

This fixes two related issues:

1. When a PS with cursor is used in store_result/get_result,
   perform a COM_FETCH with maximum number of rows rather than
   silently switching to an unbuffered result set (in the case of
   store_result) or erroring (in the case of get_result).
   In the future, we might want to make get_result unbuffered for
   PS with cursors, as using cursors with buffered result sets
   doesn't really make sense. Unlike store_result, get_result
   isn't very explicit about what kind of result set is desired.
2. If the client did not request a cursor, but the server reports
   that a cursor exists, ignore this and treat the PS as if it
   has no cursor (i.e. to not use COM_FETCH). It appears to be a
   server side bug that a cursor used inside an SP will be reported
   to the client, even though the client cannot use the cursor.

Fixes bug #64638, bug #72862, bug #77935.

Closes GH-6518.

4 years agoPDO MySQL: Use correct type when setting INT_AND_FLOAT_NATIVE
Nikita Popov [Thu, 17 Dec 2020 17:49:44 +0000 (18:49 +0100)]
PDO MySQL: Use correct type when setting INT_AND_FLOAT_NATIVE

mysqlnd expects this to be an unsigned int, not a bool.

4 years agoSkip invalid file descriptor test on Mac
Levi Morrison [Thu, 17 Dec 2020 16:10:35 +0000 (09:10 -0700)]
Skip invalid file descriptor test on Mac

4 years agoMySQLnd: Remove mnd_malloc/free etc.
Nikita Popov [Thu, 17 Dec 2020 16:01:09 +0000 (17:01 +0100)]
MySQLnd: Remove mnd_malloc/free etc.

There were only two uses of non-zmm allocation functions left,
which really did not need to use the system allocator. Remove
them, and remove the system allocator based APIs.

4 years agoMySQLnd: Fix potential leak when reading cursor
Nikita Popov [Thu, 17 Dec 2020 15:13:36 +0000 (16:13 +0100)]
MySQLnd: Fix potential leak when reading cursor

Perform the same checkpointing twe do in other row reading
functions.

4 years agoMySQLnd: Avoid some reallocations in PS decoder
Nikita Popov [Thu, 17 Dec 2020 13:41:47 +0000 (14:41 +0100)]
MySQLnd: Avoid some reallocations in PS decoder

4 years agoFix typo 'pices' in strings/join_basic.phpt
hgsgtk [Thu, 17 Dec 2020 04:24:32 +0000 (13:24 +0900)]
Fix typo 'pices' in strings/join_basic.phpt

Closes GH-6519.

4 years agoPDO MySQL: Use native types for results
Nikita Popov [Tue, 15 Dec 2020 16:07:27 +0000 (17:07 +0100)]
PDO MySQL: Use native types for results

Previously, PDO MySQL only fetched data as native int/float if
native prepared statements were used. This patch updates PDO to
have the same behavior for emulated prepared statements, and thus
removes the largest remaining discrepancy between these two modes.

Note that PDO already has a ATTR_STRINGIFY_FETCHES option to control
whether native types are desired or not. The previous output can
be restored by enabling this option.

Most of the tests make use of that option, because this allows the
tests to work under libmysqlclient as well, which currently always
returns string results (independently of whether native or emulated
PS are used).

4 years agoMySQLnd: Clean up and optimize mysqlnd result set handling
Nikita Popov [Mon, 14 Dec 2020 14:05:23 +0000 (15:05 +0100)]
MySQLnd: Clean up and optimize mysqlnd result set handling

This is a larger overhaul of the mysqlnd result set infrastructure:

 * Drop support for two different types of buffered results sets
   ("c" and "zval"). Possibly these made sense at some earlier
   time, but now (with minor adjustments) one option is strictly
   worse than the other. Buffered result sets already buffer the
   full row packets, from which zvals can be decoded. The "zval"
   style additionally also buffered the decoded zvals. As result
   sets, even buffered ones, are generally only traversed once,
   this just ends up wasting memory. Now, a potentially useful
   variation here would be to buffer the decoded zvals instead of
   the row packets, but that's not what the code was doing.
 * To make it really strictly better, pre-allocate the zval row
   buffer and reuse it for all rows. Previously the "c" style always
   allocated a new buffer for each row.
 * The fetch_row API now provides a populated zval[]. The task of
   populating an array is deferred to fetch_row_into, which also
   avoids duplicating this code in multiple places. The fetch_row_c
   API is also implemented on top of fetch_row now, rather than
   duplicating large parts of the code.
 * The row fetching code for prepared statements and normal result
   sets has been mostly merged. These already used the same
   infrastructure, but prepared statements used separate row
   fetching functions that were nearly the same as the normal ones.
   This requires passing the stmt into the result set, rather than
   just a flag. The only part that remains separate is reading of
   unbuffered results in the presence of PS cursors.

4 years agoDrop support for max_length in mysqli_fetch_fields()
Nikita Popov [Mon, 14 Dec 2020 14:41:56 +0000 (15:41 +0100)]
Drop support for max_length in mysqli_fetch_fields()

Retain the field, but always populate it with zero. This was
already the case for PS without length updating.

max_length has nothing lost in the field metadata -- it is a
property of the specific result set, and requires scanning the
whole result set to compute. PHP itself never uses max_length
with mysqlnd, it is only exposed in the raw mysqli API.

Keeping it for just that purpose is not worthwhile given the costs
involved. People who actually need this for some reason can easily
calculate it themselves, while making it obvious that the
calculation requires a full result set scan.

4 years agoFix ubsan error on Mac
Levi Morrison [Thu, 17 Dec 2020 04:24:31 +0000 (21:24 -0700)]
Fix ubsan error on Mac

Fixes this error:
> Zend/zend_alloc.c:473:73: runtime error: left shift of 250 by 24 places cannot be represented in type 'int'

4 years agoMerge branch 'PHP-8.0'
Christoph M. Becker [Wed, 16 Dec 2020 19:06:01 +0000 (20:06 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Fix #80521: Parameters with underscores no longer recognized

4 years agoFix #80521: Parameters with underscores no longer recognized
Christoph M. Becker [Wed, 16 Dec 2020 19:02:45 +0000 (20:02 +0100)]
Fix #80521: Parameters with underscores no longer recognized

We have to use the proper value for the bitmask.

4 years agoMerge branch 'PHP-8.0'
Nikita Popov [Wed, 16 Dec 2020 16:02:20 +0000 (17:02 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Detect overlarge step for character range()

4 years agoDetect overlarge step for character range()
Nikita Popov [Wed, 16 Dec 2020 16:01:15 +0000 (17:01 +0100)]
Detect overlarge step for character range()

This was done for int and float ranges, but not char ranges.

Fixes oss-fuzz #28666.

4 years agoMerge branch 'PHP-8.0'
Nikita Popov [Wed, 16 Dec 2020 14:18:43 +0000 (15:18 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  PDO MySQL: Use mysqlnd column names

4 years agoPDO MySQL: Use mysqlnd column names
Nikita Popov [Wed, 16 Dec 2020 14:17:13 +0000 (15:17 +0100)]
PDO MySQL: Use mysqlnd column names

mysqlnd already creates interned zend_strings for us, so let's
make use of them.

This also required updating the PDO case changing code to work
with potentially shared strings. For the lowercasing, use the
optimized zend_string_tolower() implementation.

4 years agoMerge branch 'PHP-8.0'
Nikita Popov [Wed, 16 Dec 2020 09:54:36 +0000 (10:54 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Fixed bug #67983

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Nikita Popov [Wed, 16 Dec 2020 09:53:48 +0000 (10:53 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fixed bug #67983

4 years agoFixed bug #67983
Nikita Popov [Wed, 16 Dec 2020 09:52:27 +0000 (10:52 +0100)]
Fixed bug #67983

We need to check the BIT case first, otherwise it will get skipped
in INT_AND_FLOAT_NATIVE mode.

4 years agoMerge branch 'PHP-8.0'
Nikita Popov [Wed, 16 Dec 2020 09:20:57 +0000 (10:20 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Fix bug #80523

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Nikita Popov [Wed, 16 Dec 2020 09:20:35 +0000 (10:20 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix bug #80523

4 years agoFix bug #80523
Nikita Popov [Wed, 16 Dec 2020 09:16:50 +0000 (10:16 +0100)]
Fix bug #80523

Don't truncate the file length to unsigned int...

I have no idea whether that fully fixes the problem because the
process gets OOM killed before finishing, but at least the
immediate parse error is gone now.

4 years agoFix ATTR_ORACLE_NULLS with PARAM_ZVAL
Nikita Popov [Tue, 15 Dec 2020 16:11:51 +0000 (17:11 +0100)]
Fix ATTR_ORACLE_NULLS with PARAM_ZVAL

PARAM_ZVAL with a STR result should be treated the same way as
PARAM_STR in this regard.

4 years agoMerge branch 'PHP-8.0'
Derick Rethans [Tue, 15 Dec 2020 14:13:55 +0000 (14:13 +0000)]
Merge branch 'PHP-8.0'

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Derick Rethans [Tue, 15 Dec 2020 14:13:43 +0000 (14:13 +0000)]
Merge branch 'PHP-7.4' into PHP-8.0

4 years agoPrepare for 7.4.15
Derick Rethans [Tue, 15 Dec 2020 14:13:29 +0000 (14:13 +0000)]
Prepare for 7.4.15

4 years agoMerge branch 'PHP-8.0'
Gabriel Caruso [Tue, 15 Dec 2020 14:05:19 +0000 (11:05 -0300)]
Merge branch 'PHP-8.0'

4 years agoPrepare for PHP 8.0.2
Gabriel Caruso [Tue, 15 Dec 2020 14:03:21 +0000 (11:03 -0300)]
Prepare for PHP 8.0.2

This was missing from f1f78ac875fcfbf1347eb81eac06c11343c4a664.

4 years agoMerge branch 'PHP-8.0'
Gabriel Caruso [Tue, 15 Dec 2020 13:33:28 +0000 (10:33 -0300)]
Merge branch 'PHP-8.0'

4 years agoNext is 8.0.2
Gabriel Caruso [Tue, 15 Dec 2020 13:30:55 +0000 (10:30 -0300)]
Next is 8.0.2

4 years agoMySQLnd: Drop free_result_internal
Nikita Popov [Tue, 15 Dec 2020 11:29:15 +0000 (12:29 +0100)]
MySQLnd: Drop free_result_internal

Merge it into free_result. There is a large number of different
free_* functions for result sets, let's avoid having one more.
Only difference is that it does not increment stats, and that
seems like a bug as free_stmt_result is still freeing a result.

4 years agoMerge branch 'PHP-8.0'
Dmitry Stogov [Tue, 15 Dec 2020 11:34:21 +0000 (14:34 +0300)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Optimize out result value of ASSIGN, ASSIGN_OP and INC/DEC opcodes, if possible.

4 years agoOptimize out result value of ASSIGN, ASSIGN_OP and INC/DEC opcodes, if possible.
Dmitry Stogov [Tue, 15 Dec 2020 11:30:58 +0000 (14:30 +0300)]
Optimize out result value of ASSIGN, ASSIGN_OP and INC/DEC opcodes, if possible.

4 years agoMySQLnd: Simplify management of zval row buffer
Nikita Popov [Tue, 15 Dec 2020 10:50:30 +0000 (11:50 +0100)]
MySQLnd: Simplify management of zval row buffer

Something odd was being done here, with the row packet having a
flag for whether it should allocate the zval buffer, which would
then get moved into the result set.

Keep the management of this buffer purely at the result set level.
This also allows us to easily reuse the same buffer for all results,
rather than allocating a new one for each fetch.

4 years agoMerge branch 'PHP-8.0'
Christoph M. Becker [Tue, 15 Dec 2020 10:46:46 +0000 (11:46 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Fix #77322: PharData::addEmptyDir('/') Possible integer overflow

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Tue, 15 Dec 2020 10:45:35 +0000 (11:45 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix #77322: PharData::addEmptyDir('/') Possible integer overflow

4 years agoFix #77322: PharData::addEmptyDir('/') Possible integer overflow
Christoph M. Becker [Fri, 11 Dec 2020 15:47:42 +0000 (16:47 +0100)]
Fix #77322: PharData::addEmptyDir('/') Possible integer overflow

`phar_path_check()` already strips a leading slash, so we must not
attempt to strip the trailing slash from an now empty directory name.

Closes GH-6508.

4 years agoMerge branch 'PHP-8.0'
Christoph M. Becker [Tue, 15 Dec 2020 10:32:43 +0000 (11:32 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  7.3.27 is next

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Tue, 15 Dec 2020 10:32:10 +0000 (11:32 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  7.3.27 is next

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Tue, 15 Dec 2020 10:30:46 +0000 (11:30 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  7.3.27 is next

4 years ago7.3.27 is next
Christoph M. Becker [Tue, 15 Dec 2020 10:28:01 +0000 (11:28 +0100)]
7.3.27 is next

4 years agoRemove mysqlnd_extension enum
Nikita Popov [Tue, 15 Dec 2020 09:55:53 +0000 (10:55 +0100)]
Remove mysqlnd_extension enum

ext/mysql is no longer supported, drop handling for it from
mysqlnd.

4 years agoMySQLnd: Remove unused fetch_field_data method
Nikita Popov [Tue, 15 Dec 2020 09:47:39 +0000 (10:47 +0100)]
MySQLnd: Remove unused fetch_field_data method

This method is not used, and is implemented in a very dubious
way.

4 years agoRemove very old -no-cpp-precomp compatibility flag on Mac
Levi Morrison [Wed, 9 Dec 2020 15:59:45 +0000 (08:59 -0700)]
Remove very old -no-cpp-precomp compatibility flag on Mac

Closes GH-6501.

4 years agoMerge branch 'PHP-8.0'
Nikita Popov [Tue, 15 Dec 2020 09:18:54 +0000 (10:18 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  JIT: Update invalid opcache.jit INI value message to include "tracing" and "function" values