Fixes #72590: Opcache restart with kill_all_lockers does not work
ACCEL_LOG_ERROR is special and causes a zend_bailout() and the code
never gets to call kill() in the next line after the logging. Change
the log level to WARNING.
Julien Pauli [Tue, 12 Jul 2016 13:54:39 +0000 (15:54 +0200)]
Merge branch 'PHP-7.0'
* PHP-7.0:
Updated NEWS
Updated NEWS
Revert "Fixes #52384: Adds parameter value to dumped output. Also adds output flag indicating presence of PDO::PARAM_INPUT_OUTPUT."
Revert "Fix test for #52384"
Julien Pauli [Tue, 12 Jul 2016 13:50:58 +0000 (15:50 +0200)]
Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
Updated NEWS
Revert "Fixes #52384: Adds parameter value to dumped output. Also adds output flag indicating presence of PDO::PARAM_INPUT_OUTPUT."
Revert "Fix test for #52384"
Partially fix #72506: idn_to_ascii for UTS #46 incorrect for long domain names
We don't actually fix this issue wrt. the empty $info array, because it is
not clear what this array should contain and we're concerned about the
potential BC break, but at least we fix the inconsistent handling of
resulting domains with 255 bytes (which raise an error), and longer domains
(which just return FALSE), what has to be considered a very minor BC break
if at all.
Julien Pauli [Tue, 12 Jul 2016 09:25:20 +0000 (11:25 +0200)]
Merge branch 'PHP-7.0'
* PHP-7.0:
Updated NEWS
Updated NEWS
Fixes #52384: Adds parameter value to dumped output. Also adds output flag indicating presence of PDO::PARAM_INPUT_OUTPUT.
Fix #72575: using --allow-to-run-as-root should ignore missing user
directive
Trying to start PHP-FPM with the --allow-to-run-as-root flag will not
work when the user directive is not given in the FPM worker pool
configuration. Parsing the config will fail. Consequently, FPM cannot
start.
The check is in place to prevent FPM from getting started with root
privileges by accident. Prior to #61295 the check would also prevent
any non-root user to start PHP-FPM without a user directive present.
This patch adds an additional check to the config parser, checking for
the --allow-to-run-as-root flag to be present. If so, parsing will no
longer abort for root users even if the user directive is missing.
I will also update the PHP docs since they still state the user
directive is a mandatory setting which it is not since #61295.
Bob Weinand [Mon, 11 Jul 2016 21:28:14 +0000 (23:28 +0200)]
Rewrite watchpoints to be much more stable
This mainly involves a separate abstraction layer for elements (e.g. $a->b) and watchpoints (on pointer of the Bucket for example).
Also better comparison handling (value backup vs. page dumps).
It is not yet finished (there are sometimes false positives announced and names not yet perfect), but the functionality is working and not crashing as far as I have tested.
Future scope is also relative watchpoints, e.g. "w $this->val expression()" which does not have the symbol tables as basis, but the value (in this example: return value of expression()) as basis.
Remove needless zeroing of anonymously mmap'd memory
All existing systems zero anonymously mmapped memory, and if I
understand correctly POSIX will be specifying this soon. Many projects
already rely on it, so no reasonable system would return memory of
unspecified value.
Michael Orlitzky [Fri, 10 Jun 2016 03:39:07 +0000 (23:39 -0400)]
ext/tidy: work around a legacy libtidy bug in a test.
Our existing test 024.phpt actually tests incorrect behavior. There is
a self-closing tag present in the input, but the expected output has
that same tag half-open (i.e. open but never closed). To support
tidy-html5, which does the right thing, that test needed to be
changed. The self-closing tag was replaced by an explicit pair of
tags, and some extra whitespace fudging was done.
Michael Orlitzky [Fri, 10 Jun 2016 03:29:14 +0000 (23:29 -0400)]
ext/tidy: update the configuration file test to not inspect output.
One of the tests for tidy (016.phpt) is testing that we can use a
configuration file (016.tcfg) instead of a string to configure
tidy. It was observing the output of an API call, which proved too
fragile now that we support tidy-html5 as well. Instead, the test was
updated to inspect $tidy->getConfig() to ensure that the config file
was actually processed and will be respected.
Michael Orlitzky [Fri, 10 Jun 2016 03:14:19 +0000 (23:14 -0400)]
ext/tidy: fix expected test output with tidy-html5.
One of the tidy tests expects some output that has (harmlessly)
changed in tidy-html5. The "EXPECT" block for that test was changed to
"EXPECTF" and mangled to accept both the old and new outputs.
Michael Orlitzky [Fri, 10 Jun 2016 03:12:17 +0000 (23:12 -0400)]
ext/tidy: fix non-deterministic expected output in two tests.
Some of the tidy tests expect output that can change. The motivating
example is an object "id" that is some integer, but no integer in
particular. Those hard-coded values have been changed to accept any
integer so that the test suite passes when tidy-html5 is used.
Michael Orlitzky [Fri, 10 Jun 2016 03:09:33 +0000 (23:09 -0400)]
ext/tidy: fix DOCTYPE definitions in expected test output.
The test suite for the tidy extension was written before HTML5 was
"standardized". The new tidy-html5 library will output an HTML5
DOCTYPE in the absence of any other information, so the expected test
outputs have been updated to accomodate the absense of an HTML version
(which is how you declare "HTML5").
Michael Orlitzky [Fri, 10 Jun 2016 03:00:02 +0000 (23:00 -0400)]
ext/tidy: add support for the new tidy-html5 library.
Our existing libtidy support is based on the legacy "HTML tidy"
project. That project now has a successor called tidy-html5, where all
new features and bugfixes happen. Of particular note are the fixes for
two security vulnerabilities, CVE-2015-5522 and CVE-2015-5523.
The API is largely unchanged in the new project (which is truly the
successor of the original -- not a fork), and so it is almost a
drop-in replacement as far as PHP is concerned. However, one file has
changed in the new project: "buffio.h" has been moved to
"tidybuffio.h".
This commit detects the presence of tidybuffio.h at build time, and
then adjusts the import statement in tidy.c accordingly. The result is
a build that works against either the legacy project or the new
tidy-html5 project, although the test suite for the tidy extension now
fails. Those failures are not critical and will be fixed.