]> granicus.if.org Git - php/log
php
5 years agoupdate NEWS [ci skip]
SjonHortensius [Tue, 2 Jul 2019 10:22:48 +0000 (12:22 +0200)]
update NEWS [ci skip]

add #2684

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Tue, 2 Jul 2019 10:28:46 +0000 (12:28 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Nikita Popov [Tue, 2 Jul 2019 10:28:37 +0000 (12:28 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

5 years agoFix bug #78138: opcache.validate_permission incorrectly works with PHAR files
Alex Scott [Tue, 11 Jun 2019 14:31:07 +0000 (18:31 +0400)]
Fix bug #78138: opcache.validate_permission incorrectly works with PHAR files

opcache incorrectly handles PHAR files when opcache.validate_permission
option enabled, because it calls

  access("phar://path-to/file.phar/path/inside.php", R_OK);

rather than

  access("path-to/file.phar", R_OK)

5 years agoPDO: support username & password specified in DSN
Sjon Hortensius [Mon, 14 Aug 2017 09:41:47 +0000 (11:41 +0200)]
PDO: support username & password specified in DSN

5 years agoFix opcache huge page mapping on FreeBSD
David Carlier [Mon, 1 Jul 2019 19:23:02 +0000 (20:23 +0100)]
Fix opcache huge page mapping on FreeBSD

Too much room were given process mappings and were not unmapped.

Closes GH-4345.

5 years agoFix clang build
Nikita Popov [Tue, 2 Jul 2019 08:16:55 +0000 (10:16 +0200)]
Fix clang build

5 years agoUpdate proto comment for proc_open
Nikita Popov [Mon, 1 Jul 2019 17:02:39 +0000 (19:02 +0200)]
Update proto comment for proc_open

5 years agoRemove unused (module|request)_shutdown_for_exec
Nikita Popov [Mon, 1 Jul 2019 17:01:50 +0000 (19:01 +0200)]
Remove unused (module|request)_shutdown_for_exec

5 years agoFixed build without global register variables
Dmitry Stogov [Tue, 2 Jul 2019 08:03:22 +0000 (11:03 +0300)]
Fixed build without global register variables

5 years agoSeparate slow code
Dmitry Stogov [Mon, 1 Jul 2019 22:16:34 +0000 (01:16 +0300)]
Separate slow code

5 years agoUse string destructor instead of general zval_ptr_dtor_nogc()
Dmitry Stogov [Mon, 1 Jul 2019 22:14:33 +0000 (01:14 +0300)]
Use string destructor instead of general zval_ptr_dtor_nogc()

5 years agoEliminate exception checks
Dmitry Stogov [Mon, 1 Jul 2019 22:11:41 +0000 (01:11 +0300)]
Eliminate exception checks

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Mon, 1 Jul 2019 16:13:14 +0000 (18:13 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Add missing SKIPIFs

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Christoph M. Becker [Mon, 1 Jul 2019 16:12:28 +0000 (18:12 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

* PHP-7.2:
  Add missing SKIPIFs

5 years agoAdd missing SKIPIFs
Christoph M. Becker [Mon, 1 Jul 2019 16:11:13 +0000 (18:11 +0200)]
Add missing SKIPIFs

All these tests are meant to run with OPcache available, and some will
even fail inevitably without it, so we add OPcache as SKIPIF
requirement.

5 years agoSetup msan on azure
Nikita Popov [Mon, 1 Jul 2019 08:26:29 +0000 (10:26 +0200)]
Setup msan on azure

This uses a separate job template, because msan requires all used
libraries (apart from glibc) to be instrumented, so we can't link
any external libraries unless we recompile them. As such, we need
a much more minimal configure.

5 years agoGenerate less code in compile time binary op test
Nikita Popov [Mon, 1 Jul 2019 14:25:28 +0000 (16:25 +0200)]
Generate less code in compile time binary op test

Don't generate try {} blocks for the operations that don't throw.

5 years agoSkip perf-sensitive fileinfo tests
Nikita Popov [Mon, 1 Jul 2019 11:20:03 +0000 (13:20 +0200)]
Skip perf-sensitive fileinfo tests

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Mon, 1 Jul 2019 15:24:33 +0000 (17:24 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Add missing SKIPIFs

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Christoph M. Becker [Mon, 1 Jul 2019 15:22:55 +0000 (17:22 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

* PHP-7.2:
  Add missing SKIPIFs

5 years agoAdd missing SKIPIFs
Christoph M. Becker [Mon, 1 Jul 2019 13:01:24 +0000 (15:01 +0200)]
Add missing SKIPIFs

All these tests are meant to run with OPcache available, and some will
even fail inevitably without it, so we add OPcache as SKIPIF
requirement.

5 years agoopcache huge pages: Little fix for FreeBSD
David Carlier [Mon, 1 Jul 2019 14:07:55 +0000 (14:07 +0000)]
opcache huge pages: Little fix for FreeBSD

Calculating the vm entries size beforehand, as we could
possibly miss few entries.

Closes GH-4344.

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Mon, 1 Jul 2019 14:44:54 +0000 (16:44 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix brittle test

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Christoph M. Becker [Mon, 1 Jul 2019 14:43:47 +0000 (16:43 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

* PHP-7.2:
  Fix brittle test

5 years agoFix brittle test
Christoph M. Becker [Mon, 1 Jul 2019 14:41:20 +0000 (16:41 +0200)]
Fix brittle test

This test is easily tripped by former test runs with other PHP
versions.  To avoid such false positives, we check that there is at
least one respective OPcache file, and that all found OPcache user ID
folders have exactly 32 hexadecimal digits.

5 years agoInitialize last_line in phpdbg globals
Nikita Popov [Mon, 1 Jul 2019 14:13:50 +0000 (16:13 +0200)]
Initialize last_line in phpdbg globals

5 years agoMicro-optimization
Dmitry Stogov [Mon, 1 Jul 2019 13:57:25 +0000 (16:57 +0300)]
Micro-optimization

5 years agoFixed GOTO VM
Dmitry Stogov [Mon, 1 Jul 2019 12:50:53 +0000 (15:50 +0300)]
Fixed GOTO VM

5 years agoRemove TSRM_BASIC_CHECKS
Peter Kokot [Mon, 1 Jul 2019 11:23:41 +0000 (13:23 +0200)]
Remove TSRM_BASIC_CHECKS

This macro is not needed anymore. The AC_PROG_CC is done in the main
configure.ac file and the ranlib check is done by the bundled libtool
macros.

Closes GH-4339

5 years agoRemove not needed checks for functions
Peter Kokot [Mon, 1 Jul 2019 11:20:35 +0000 (13:20 +0200)]
Remove not needed checks for functions

The following functions don't need to be checked anymore since the
they are not used across the code or the symbols aren't used anymore:
- cuserid (not used)
- lrand48 (not used and removed via
  6d6ef7aacc7f9b17709d2f93b70b359c75011f89)
- random (check is not used)
- srand48 (not used)
- srandom (not used)
- strdup (check is not used)

and the unused check symbols:
- HAVE_CUSERID
- HAVE_LRAND48
- HAVE_RANDOM
- HAVE_SRAND48
- HAVE_SRANDOM
- HAVE_STRDUP

Closes GH-4338

5 years agoRemove unused check for struct cmsghdr
Peter Kokot [Mon, 1 Jul 2019 11:13:51 +0000 (13:13 +0200)]
Remove unused check for struct cmsghdr

The result of this check is to whether to define the HAVE_CMSGHDR symbol
or not. The HAVE_CMSGHDR is never used in the code and it has been
removed via 90289924c031c5b0b2aa1f99ecf317640c926a62.

Closes GH-4337

5 years agoClarify #if indentation in time limit implemementation
Nikita Popov [Mon, 1 Jul 2019 10:18:21 +0000 (12:18 +0200)]
Clarify #if indentation in time limit implemementation

5 years agoRun file_put_contents_variantion8 in separate directory
Nikita Popov [Mon, 1 Jul 2019 09:54:05 +0000 (11:54 +0200)]
Run file_put_contents_variantion8 in separate directory

There are other tests that try to read these files.

5 years agoFix unused variable warnings when mbregex disabled
Nikita Popov [Mon, 1 Jul 2019 09:13:12 +0000 (11:13 +0200)]
Fix unused variable warnings when mbregex disabled

5 years agoMsan: Unpoison buffer written by file cache
Nikita Popov [Mon, 1 Jul 2019 09:02:31 +0000 (11:02 +0200)]
Msan: Unpoison buffer written by file cache

It would be great if this were fully initialized, but it's not
really a problem either (as long as we don't care about reproducible
file cache), so ignore this for now.

5 years agoDon't use fast_memcpy under msan
Nikita Popov [Mon, 1 Jul 2019 08:44:44 +0000 (10:44 +0200)]
Don't use fast_memcpy under msan

5 years agoMsan: Unpoison getrandom() syscall result
Nikita Popov [Mon, 1 Jul 2019 08:37:34 +0000 (10:37 +0200)]
Msan: Unpoison getrandom() syscall result

5 years agoAdd some tolerance to time_sleep_until() test
Nikita Popov [Mon, 1 Jul 2019 07:43:16 +0000 (09:43 +0200)]
Add some tolerance to time_sleep_until() test

This has been sporadically failing on macos for a while. We've tried
a couple of things (using int arithmetic, normalizing to gettimeofday),
but this issue remains. I'm adding some tolerance to the test to
avoid CI failures.

5 years agoDisable RTLD_DEEPBIND under memory sanitizer
Nikita Popov [Fri, 28 Jun 2019 16:15:38 +0000 (18:15 +0200)]
Disable RTLD_DEEPBIND under memory sanitizer

This was already done for address sanitizer.

5 years agoUpdate NEWS [ci skip]
Peter Kokot [Mon, 1 Jul 2019 01:10:09 +0000 (03:10 +0200)]
Update NEWS [ci skip]

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Peter Kokot [Mon, 1 Jul 2019 00:55:02 +0000 (02:55 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Update NEWS [ci skip]

5 years agoUpdate NEWS [ci skip]
Peter Kokot [Mon, 1 Jul 2019 00:54:42 +0000 (02:54 +0200)]
Update NEWS [ci skip]

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Peter Kokot [Mon, 1 Jul 2019 00:53:10 +0000 (02:53 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix bug #78197: PCRE2 version check

5 years agoFix bug #78197: PCRE2 version check
Peter Kokot [Sun, 23 Jun 2019 13:46:47 +0000 (15:46 +0200)]
Fix bug #78197: PCRE2 version check

When external PCRE library version is of format ##.##-RC# the check
failed.

5 years agoUpdate changelogs [ci skip]
Peter Kokot [Sun, 30 Jun 2019 23:35:29 +0000 (01:35 +0200)]
Update changelogs [ci skip]

5 years agoSync functions checks
Peter Kokot [Fri, 28 Jun 2019 21:10:37 +0000 (23:10 +0200)]
Sync functions checks

Removed unused checks:
- mbsinit check removed, HAVE_MBSINIT removed (not used in php-src)
- mempcpy check removed, HAVE_MEMPCPY removed (not used in php-src anymore since
  560ed89bfbb56526251e9bd2fbcb27e5932641d8 which uses PHP's own implementation)
- strpncpy check removed, added via a8c9e893b6911c785f698d724b2ff61e7aebb737 and
  not used.
- setpgid check removed since HAVE_SETPGID is not used

Moved to a central configure.ac:
- fpclass
- mbrlen moved to configure.ac (since the HAVE_MBRLEN is used accross the php-src)
- sigprocmask
- getcwd
- getwd
- glob
- strfmon
- nice

Duplicated checks removed:
- gethostname
- getlogin
- getpwuid_r
- socketpair

- mprotect check simplified

5 years agoRemove unused build specific symbols
Peter Kokot [Wed, 26 Jun 2019 19:55:26 +0000 (21:55 +0200)]
Remove unused build specific symbols

These were part of the following decomissioned extensions:
- PHP_SYBASE part of the sybase extension
- PHP_MSQL_* part of the msql extension
- PHP_APACHE_* symbols were used in apache and apache_hooks sapis
- PHP_FHTTPD_* symbols part of old sapi/fhttpd
- PHP_MYSQL_* symbols were part of the legacy mysql extension

- Remove PHP_ORACLE_* symbols
  These were part of the obsolete oracle extension that was moved to PECL
  via f35af61ef8fd10f2d1bada1909e888293fb519b8.

- PHP_OCI8_SHARED_LIBADD and PHP_OCI8_DIR were removed via
  c33f88ccb08ca05ebf822ef94cb3fa41a1838226

And other are not used anywhere across the php-src codebase

5 years agoFix phar tests with hash extension
Peter Kokot [Sat, 29 Jun 2019 12:40:31 +0000 (14:40 +0200)]
Fix phar tests with hash extension

- The hash extension is now always available.

- Remove unfinished test
  The Phar::PGP currently doesn't exist yet.

5 years agoFix missing file and remove SKIP section
Peter Kokot [Sat, 29 Jun 2019 12:46:51 +0000 (14:46 +0200)]
Fix missing file and remove SKIP section

Test now passes on VC 14, 15 and 16 with current MSVC runtimes.

5 years agoRemove HAVE_LIMITS_H check
Peter Kokot [Sun, 30 Jun 2019 21:44:45 +0000 (23:44 +0200)]
Remove HAVE_LIMITS_H check

The limits.h header is part of the C89 and is today available
everywhere. There is no need to check for presence of this header
anymore.

The timelib has already been patched upstream via
aae5907cb7e775f16bedf61b010b8692c12a2843

PHP extensions out there shouldn't rely on symbols defined during the
build anyway and neither they do on this particular symbol anymore.

5 years agoRemove HAVE_DEV_ARANDOM
Peter Kokot [Sun, 30 Jun 2019 02:38:07 +0000 (04:38 +0200)]
Remove HAVE_DEV_ARANDOM

The arandom check is not needed anymore since the implementations of:
3467526a65bfb15eaf9ec49a0b5673b84e26bca4
and
6554f721f770c99037f07d465a7d610568576ce4

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Derick Rethans [Sun, 30 Jun 2019 14:50:55 +0000 (15:50 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

5 years agoFixed tests due to changed timezone data
Derick Rethans [Sun, 30 Jun 2019 14:50:38 +0000 (15:50 +0100)]
Fixed tests due to changed timezone data

5 years agoUpdate timelib to 2018.02
Derick Rethans [Sun, 30 Jun 2019 14:45:13 +0000 (15:45 +0100)]
Update timelib to 2018.02

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Anatol Belski [Sat, 29 Jun 2019 15:41:29 +0000 (17:41 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Update NEWS [ci skip]

5 years agoUpdate NEWS [ci skip]
Anatol Belski [Sat, 29 Jun 2019 15:40:58 +0000 (17:40 +0200)]
Update NEWS [ci skip]

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Anatol Belski [Sat, 29 Jun 2019 15:40:14 +0000 (17:40 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

* PHP-7.2:
  Update NEWS [ci skip]

5 years agoUpdate NEWS [ci skip]
Anatol Belski [Sat, 29 Jun 2019 15:39:45 +0000 (17:39 +0200)]
Update NEWS [ci skip]

5 years agoUpdate libmagic.patch [ci skip]
Anatol Belski [Sat, 29 Jun 2019 15:35:25 +0000 (17:35 +0200)]
Update libmagic.patch [ci skip]

5 years agoSet buffer to NULL to prevent double free (Kamil Dudka at redhat)
Anatol Belski [Sat, 29 Jun 2019 15:10:29 +0000 (17:10 +0200)]
Set buffer to NULL to prevent double free (Kamil Dudka at redhat)

Based on the upstream patch d13204e8da43f1d8a98cf3f74591cde02ecdb2f7.

5 years agoFix magic data
Anatol Belski [Sat, 29 Jun 2019 14:51:41 +0000 (16:51 +0200)]
Fix magic data

5 years agoFix memory leak in COM ctor
Christoph M. Becker [Sat, 29 Jun 2019 12:47:06 +0000 (14:47 +0200)]
Fix memory leak in COM ctor

We have to free strings returned from php_com_olestring_to_string().

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Anatol Belski [Sat, 29 Jun 2019 11:31:22 +0000 (13:31 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix typo
  Add tests from fix #78183 from PHP-7.2
  Fix #78183: finfo_file shows wrong mime-type for .tga file

5 years agoFix typo
Anatol Belski [Sat, 29 Jun 2019 11:30:35 +0000 (13:30 +0200)]
Fix typo

5 years agoAdd tests from fix #78183 from PHP-7.2
Joshua Westerheide [Sat, 29 Jun 2019 09:59:08 +0000 (11:59 +0200)]
Add tests from fix #78183 from PHP-7.2

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Anatol Belski [Sat, 29 Jun 2019 11:29:41 +0000 (13:29 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

* PHP-7.2:
  Fix #78183: finfo_file shows wrong mime-type for .tga file

5 years agoFix #78183: finfo_file shows wrong mime-type for .tga file
Joshua Westerheide [Fri, 28 Jun 2019 13:07:14 +0000 (15:07 +0200)]
Fix #78183: finfo_file shows wrong mime-type for .tga file

Due to a bug in the underlying libmagic 5.31, .tga images returned mime type "image/x-tgaimage/x-tga".

5 years agoimplement support for workers in cli-server on platforms supporting fork
Joe Watkins [Thu, 27 Jun 2019 13:09:58 +0000 (15:09 +0200)]
implement support for workers in cli-server on platforms supporting fork

5 years agoadd ini config details to php-config
Joe Watkins [Wed, 26 Jun 2019 10:49:01 +0000 (12:49 +0200)]
add ini config details to php-config

5 years agoClean up files after the tests are run
Peter Kokot [Thu, 27 Jun 2019 00:21:31 +0000 (02:21 +0200)]
Clean up files after the tests are run

5 years agoUpdate changelogs [ci skip]
Peter Kokot [Fri, 28 Jun 2019 18:14:22 +0000 (20:14 +0200)]
Update changelogs [ci skip]

5 years agoRemove HAVE_ERRNO_H from libgd
Peter Kokot [Thu, 27 Jun 2019 22:58:26 +0000 (00:58 +0200)]
Remove HAVE_ERRNO_H from libgd

The check for errno.h has been removed via
50b9ef8d9435d23be40cea7fb484a02e99fdb617

Upstream libgd library is also patched via
https://github.com/libgd/libgd/commit/1e7f93922fb3adf9f131d7e94aa13386062ffe11

5 years agoUse strcmp() in phpdbg_eol_global_update
Nikita Popov [Fri, 28 Jun 2019 15:24:30 +0000 (17:24 +0200)]
Use strcmp() in phpdbg_eol_global_update

memcmp() only makes sense on equal length strings, and here we don't
know anything about the length of the input.

5 years agoDisable ifunc resolvers if memory sanitizer is used
Nikita Popov [Fri, 28 Jun 2019 15:15:56 +0000 (17:15 +0200)]
Disable ifunc resolvers if memory sanitizer is used

Just marking them as no_sanitize("memory") is unforunately not
sufficient, as the function still gets instrumented -- the attribute
only disables reporting.

5 years agoRemove phpdbg_xml_asprintf()
Nikita Popov [Fri, 28 Jun 2019 14:59:52 +0000 (16:59 +0200)]
Remove phpdbg_xml_asprintf()

Clang doesn't like the use of promoted zend_bool in va_start. As
the function isn't used anyway, I'm simply dropping it...

5 years agoMark ifunc resolver functions as unused
Nikita Popov [Fri, 28 Jun 2019 14:55:54 +0000 (16:55 +0200)]
Mark ifunc resolver functions as unused

It looks like clang doesn't see that these are used through
__attribute__((ifunc)) and generates a warning.

5 years agoFix arginfo leak in disable_functions
Nikita Popov [Fri, 28 Jun 2019 14:36:58 +0000 (16:36 +0200)]
Fix arginfo leak in disable_functions

Arginfo is allocated if types are used, we need to free it.

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Fri, 28 Jun 2019 14:09:23 +0000 (16:09 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Nikita Popov [Fri, 28 Jun 2019 14:09:09 +0000 (16:09 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

5 years agoFix bugs in AST printer
sunnyeo [Fri, 28 Jun 2019 14:06:01 +0000 (16:06 +0200)]
Fix bugs in AST printer

Closes GH-4324.

5 years agoSet up asan+ubsan scheduled build on azure
Nikita Popov [Thu, 20 Jun 2019 14:51:14 +0000 (16:51 +0200)]
Set up asan+ubsan scheduled build on azure

Also adds an --asan flag to run-tests.php to setup all the necessary
environment variables. Some tests are marked as skipped because they
are incompatible with asan or too slow.

I'm basing this on the DEBUG_ZTS build, which seems to give us the
most mileage.

5 years agoFix out of bounds read in sccp
Nikita Popov [Fri, 28 Jun 2019 10:38:28 +0000 (12:38 +0200)]
Fix out of bounds read in sccp

5 years agoAvoid reliance on arena details on phpdbg oplog
Nikita Popov [Fri, 28 Jun 2019 10:32:54 +0000 (12:32 +0200)]
Avoid reliance on arena details on phpdbg oplog

Instead of guessing what the address of the first arena allocation
is going to be, embed the sentinel in the oplog_list structure
directly.

5 years agoUpdate error message in libmysql test
Nikita Popov [Fri, 28 Jun 2019 12:36:10 +0000 (14:36 +0200)]
Update error message in libmysql test

5 years agoFix compilation errors when building against libmysql
Sebastian Pop [Fri, 21 Jun 2019 07:15:35 +0000 (07:15 +0000)]
Fix compilation errors when building against libmysql

Closes GH-4316.

5 years agoFix out-of-bounds read in array compilation
Nikita Popov [Fri, 28 Jun 2019 08:24:56 +0000 (10:24 +0200)]
Fix out-of-bounds read in array compilation

UNPACK elements only have one child. Don't access the second one
until we have excluded this case.

5 years agoAdd tracked arena allocator
Nikita Popov [Fri, 28 Jun 2019 08:19:18 +0000 (10:19 +0200)]
Add tracked arena allocator

Available under -DZEND_TRACK_ARENA_ALLOC. This will use the system
allocator combined with arena checkpointing & release semantics
and allows analyzing arena usage under asan/valgrind.

I've sacrificed the duplicate arena implementation in mysqlnd, as
the integration with mysqlnd alloc is not worth the code duplication
to me.

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Fri, 28 Jun 2019 10:37:28 +0000 (12:37 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix bug #78192 PDO SQLite SegFault when reuse statement after schema has changed

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Christoph M. Becker [Fri, 28 Jun 2019 10:36:33 +0000 (12:36 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

* PHP-7.2:
  Fix bug #78192 PDO SQLite SegFault when reuse statement after schema has changed

5 years agoFix bug #78192 PDO SQLite SegFault when reuse statement after schema has changed
Vincent [Wed, 26 Jun 2019 09:37:08 +0000 (11:37 +0200)]
Fix bug #78192 PDO SQLite SegFault when reuse statement after schema has changed

Reset stmt->columns when column count changed on new execution of prepared statement

5 years agoAdd support for proc_open() with a command array
Nikita Popov [Mon, 24 Jun 2019 10:53:40 +0000 (12:53 +0200)]
Add support for proc_open() with a command array

In this case the progarm will be executed directly, without a shell.
On Linux the arguments are passed directly to execvp and no escaping
is necessary. On Windows we construct a command string using escaping
with the default Windows command-line argument parsing method described
at https://docs.microsoft.com/en-us/cpp/cpp/parsing-cpp-command-line-arguments.

Apart from avoiding the issue of argument escaping, passing an array
and bypassing shell has the advantage of allowing proper signal
delivery to the opened process (rather than the shell).

5 years agoReduce overhead
Dmitry Stogov [Fri, 28 Jun 2019 09:03:01 +0000 (12:03 +0300)]
Reduce overhead

5 years agoimplement tsrm_is_shutdown API
Joe Watkins [Wed, 26 Jun 2019 11:18:50 +0000 (13:18 +0200)]
implement tsrm_is_shutdown API

5 years agoUse the portable zend_strndup() instead of strndup()
Christoph M. Becker [Fri, 28 Jun 2019 08:20:50 +0000 (10:20 +0200)]
Use the portable zend_strndup() instead of strndup()

5 years agoFixed use-after-free
Dmitry Stogov [Fri, 28 Jun 2019 07:43:56 +0000 (10:43 +0300)]
Fixed use-after-free

5 years agoFix mysqlnd memory leak
Nikita Popov [Thu, 27 Jun 2019 14:52:19 +0000 (16:52 +0200)]
Fix mysqlnd memory leak

The actual leak is observed in ext/pdo_mysql/tests/bug_74376.phpt.
The persistent connection leaks because a refcount decrement on a
result is missed. The refcount decrement is missed because
free_result_contents is used, rather than free_result.

Looking at other uses of free_result_contents, it looks like they
could also suffer from this problem. Apart from one case,
free_result_contents is always used to release the result entirely
(I've adjusted the one differing case to only free meta), so I'm
moving most of the logic from free_result into free_result_contents.
The only difference is now that free_result will skip_result first.

5 years agoFree ZTS lock in opcache
Nikita Popov [Thu, 27 Jun 2019 14:01:13 +0000 (16:01 +0200)]
Free ZTS lock in opcache

For some reason this only shows up as a leak when using phpdbg.

5 years agoFix init_file leak in phpdbg
Nikita Popov [Thu, 27 Jun 2019 13:43:50 +0000 (15:43 +0200)]
Fix init_file leak in phpdbg

5 years agorun-tests: Don't pass --INI-- settings to --SKIPIF--
Nikita Popov [Thu, 27 Jun 2019 12:07:20 +0000 (14:07 +0200)]
run-tests: Don't pass --INI-- settings to --SKIPIF--

If we're testing ini settings that cause startup failures, we'll
never get to that SKIPIF block...

Also change settings2param to return a value instead of modifying
(to a different type no less!) in place.