Anatol Belski [Wed, 31 Jan 2018 19:15:30 +0000 (20:15 +0100)]
Fix race conditions with Apache vhost vs. per dir config
If the same php_value/php_flag is present in httpd.conf and .htaccess,
the key is potentially shared between threads. Unfortunately we can't
intern these keys using the current mechanism, because the MPM is setup
before the SAPI module setup is even started. A more elegant way were
to implement a kind of string pool for the thread safe Apache SAPI
config directives with the mechanism similar to what is done for the
SAPI setup now, but doing a separate management.
Nikita Popov [Sat, 13 Jan 2018 10:04:26 +0000 (11:04 +0100)]
Fix generator GC if yield from parent chain does not reach root
Parents may be unlinked while another generator sharing part of the
chain is running. As such, we cannot assume that the parent chain
goes all the way to the root. Instead walk backwards from root to
leaf, like we also do during destruction.
Nikita Popov [Fri, 12 Jan 2018 20:24:04 +0000 (21:24 +0100)]
Fixed bug #75396
Do not run finally blocks in generators on unclean shutdown (e.g.
caused by exit). This is consistent with how finally blocks outside
of generators behave.
Anatol Belski [Thu, 11 Jan 2018 13:28:09 +0000 (14:28 +0100)]
Fix test for libtidy 5.6.0
libtidy 5.6.0 remove the language option from the library, it is only
supported on cli. Prior to that, this option was not used in the
library. Thus, exclude the option presence from test.
Nikita Popov [Tue, 9 Jan 2018 19:20:31 +0000 (20:20 +0100)]
Fixed bug #75786
SEND_UNPACK on iterators was duplicating references in-place,
which effectively leaks the original value and causes an off-by-one
refcount on the duplicated value.
Replace this with a deref, as an actual duplication is not even
needed in this case.
Anatol Belski [Wed, 3 Jan 2018 17:32:33 +0000 (18:32 +0100)]
Skip on Travis-CI
The current doc states max ram for a test VM would be 7.5G, the
currently used container image has even less. This skip should be
revisited, as the available memory amount shifts. The way of checking
/proc/meminfo doesn't work reliably on containers at least, thus
skipping explicitly on Travis-CI makes sense.
Xinchen Hui [Tue, 2 Jan 2018 05:49:58 +0000 (13:49 +0800)]
Merge branch 'PHP-7.1' of git.php.net:/php-src into PHP-7.1
* 'PHP-7.1' of git.php.net:/php-src:
Update NEWS
Fixed bug #75571: Potential infinite loop in gdImageCreateFromGifCtx
Fix bug #74782: remove file name from output to avoid XSS
Fixed bug #75571: Potential infinite loop in gdImageCreateFromGifCtx
Due to a signedness confusion in `GetCode_` a corrupt GIF file can
trigger an infinite loop. Furthermore we make sure that a GIF without
any palette entries is treated as invalid *after* open palette entries
have been removed.
Fix bug #69727: Support SOURCE_DATE_EPOCH for Build Date
When checking for reproducible builds php is build twice, once with the
current date and once with a date in the future. To keep the build date
supported and reproducible builds possible, SOURCE_DATE_EPOCH is
introduced which can be set to the same epoch value for both builds.
Michael Heimpold [Sun, 26 Nov 2017 17:29:42 +0000 (18:29 +0100)]
ext/imap/config.m4: fix ac_cv_u8t_decompose check
Once upon the time, commit c58f63a38ae19caaab339c61486fc3bd7e5894f9
changed the check from U8T_CANONICAL to U8T_DECOMPOSE. However,
the autoconf cache id was not renamed.
Sometimes it is desirable to preseed the autoconf variables, e.g. when
cross-compiling to avoid the tests running on the host system. In this
case it's confusing when the cache id does not match the variable to
set, so let's adjust it.
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
Anatol Belski [Wed, 6 Dec 2017 14:59:21 +0000 (15:59 +0100)]
Fix yet one data race in PCRE
PCRE 8.x initializes the pattern compiler on demand during the first
pcre_study call. It could be worse, but since the compiled patterns are
cached, the locking impact is minimal. PCRE 10.x always compiles the
pattern and thread sanitizer doesn't complain about the compiler
initialization, thus the newer PCRE version seems to be unafected.