Andrea Faulds [Sat, 13 Dec 2014 22:28:45 +0000 (22:28 +0000)]
Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
Fix undefined behaviour in strnatcmp
update NEWS
move the test to the right place
Fixed bug #68545 NULL pointer dereference in unserialize.c
Anatol Belski [Fri, 12 Dec 2014 09:43:31 +0000 (10:43 +0100)]
Fixed bug #68583 Crash in timeout thread
This replaces the GUI element used for execution timeout handling
on Windows. Instead a timer queue technique is used, which is indeed
a thread pool. A timer queue timer is a lightweight object handled
but that thread pool and the timer thread spends most of the time
sleeping and waiting for an alert.
Please note also that this introduces neither binary nor source
breach. The custom timeout thread functions are deleted, however
they was not exported throug DLL, so couldn't be used by any
external code. As well they couldn't be used anywhere in the core
except in executor api, because those custom timeout thread
functions they used to operate on static variables which would
be overwritten (and that would blow).
So instead a relatively modern technique is used for the timeout
handling. It's still not perfect because the executor still has to
check EX(timed_out). This can be a topic for an improvement in
master. But brobably can be tricky as currently it seems to be not
possible to signal an individual thread. Also note another issue
that static variables aren't thread safe, but the current timer
implementation is.
Ferenc Kovacs [Thu, 4 Dec 2014 10:12:17 +0000 (11:12 +0100)]
Merge branch 'pull-request/932' into PHP-5.5
* pull-request/932:
add initial install
switch to C travis project instead of PHP
use the generic TRAVIS environment var to check for travis (see http://docs.travis-ci.com/user/ci-environment/)
Anatol Belski [Wed, 3 Dec 2014 15:33:05 +0000 (16:33 +0100)]
Fixed bug #55541 errors spawn MessageBox, which blocks test automation
With that, also fixed bug #68297 (Application Popup provides too few
information) as a better error message is provided to the event log.
In the second case, the condition for display_startup_error was removed. The
condition was added as a fix for bug #30760 which was preventing the
MessageBox to appear. When display_startup_error=on, the error will be seen
on the console. But when running under a webserver it'll probably get lost,
so we need to log it other way into the event log (would be done automatically
when message box was used, but that would eventually cause issues of blocked
execution).
Generally speaking - any MessageBox or other graphical element is a potential
issue and that was repeatedly reported. Graphical elements shouldn't be used
in the core. Even being a rare one it can cause a bad situation where the
server is blocked. Yet some places have to cleaned up.
Add port range verification of listening port with -S option for the php cli.
This fixes inconsistent listening port due to unverified cast from long to short
with htons(3).
* PHP-5.4:
update news
Apply error-code-salt fix to Windows too
Bug fixes in light of failing bcrypt tests
Add tests from 1.3. Add missing tests.
Upgrade crypt_blowfish to version 1.3
* pull-request/868:
Apply error-code-salt fix to Windows too
Bug fixes in light of failing bcrypt tests
Add tests from 1.3. Add missing tests.
Upgrade crypt_blowfish to version 1.3
Paul Garvin [Wed, 7 May 2014 04:17:45 +0000 (00:17 -0400)]
SPL: Fix for bug 66405 RecursiveDirectoryIterator with CURRENT_AS_PATHNAME
Currently when you use RecursiveDirectoryIterator with the
CURRENT_AS_PATHNAME flag PHP will throw an UnexpectedValueException with
message 'Objects returned by RecursiveIterator::getChildren() must implement
RecursiveIterator'.This happend because getChildren() will return the
current directory name instead of an Iterator (or subclass of) as required
by the RecursiveIterator interface.
This commit changes getChildren() to return annother
RecursiveDirectoryIterator but current() still returns the path name when
CURRENT_AS_PATHNAME is used. A PHPT test case (bug66405.phpt) that
reproduces the bug is included.
This fix was originally against the PHP-5.4 branch, but it was not merged
before 5.4 reached EOL. I am hoping to get it applied to 5.5, 5.6, and
master.
Ferenc Kovacs [Wed, 26 Nov 2014 23:08:40 +0000 (00:08 +0100)]
the darwin specific test fails for me with the same output which is the expected for the original test
I couldn't find anybody who managed to see this test passing, but I found a bunch of other reports on
qa.php.net/reports and on google which do see this test failing on mac.
if this change causes you to have this test failing on Mac, please drop me a mail so we can improve
the current test so it passes for everybody.