Joe Watkins
3aaf90df49
Merge branch 'master' of https://github.com/php/php-src
2016-04-29 12:26:18 +01:00
Joe Watkins
66fc5a3436
Implement #51879 stream context socket option tcp_nodelay
2016-04-29 12:11:58 +01:00
Dmitry Stogov
0091d81668
Merge branch 'master' of git.php.net:php-src
...
* 'master' of git.php.net:php-src:
fix constants availability
fix size_t signed comparison
2016-04-29 13:13:59 +03:00
Anatol Belski
9db8cefa3c
fix constants availability
...
The issue here is that winsock2 defines IP protocols as an enum,
so the preprocessor won't catch it. However all the items related
are available as of winxp (see ws2def.h), so it's safe just to have.
2016-04-29 11:37:19 +02:00
Dmitry Stogov
e2340a17bd
Merge branch 'PHP-7.0'
...
* PHP-7.0:
Simplified condition
2016-04-29 12:34:09 +03:00
Dmitry Stogov
37f7c71f3e
Simplified condition
2016-04-29 12:33:54 +03:00
Dmitry Stogov
926857708b
Merge branch 'PHP-7.0'
...
* PHP-7.0:
size_t is unsigned and can't be negative
2016-04-29 12:24:13 +03:00
Dmitry Stogov
ddac2852dc
size_t is unsigned and can't be negative
2016-04-29 12:23:30 +03:00
Joe Watkins
12f826d7df
Merge branch 'PHP-7.0'
...
* PHP-7.0:
fix size_t signed comparison
2016-04-29 10:20:27 +01:00
Joe Watkins
dbae1653da
fix size_t signed comparison
2016-04-29 10:19:55 +01:00
Xinchen Hui
2f17ef1d25
Merge branch 'PHP-7.0'
...
* PHP-7.0:
Fixed build
Add NEWS entry for bug #71331 (fixed in 7.0.3)
Add NEWS entry for bug #71331 (fixed in PHP 5.6.18)
2016-04-29 11:13:29 +08:00
Xinchen Hui
a5718539b1
Fixed build
2016-04-29 11:13:15 +08:00
Joe Watkins
64721f143a
Merge branch 'PHP-7.0' of https://github.com/php/php-src into PHP-7.0
2016-04-28 15:41:23 +01:00
Joe Watkins
de019858c3
Merge branch 'PHP-7.0'
...
* PHP-7.0:
variable used out of scope
2016-04-28 15:40:59 +01:00
Joe Watkins
e27a43b7be
variable used out of scope
2016-04-28 15:40:28 +01:00
Bob Weinand
6d420dc782
Merge branch 'PHP-7.0'
2016-04-28 11:10:53 +02:00
Bob Weinand
74ef863f5d
Fixed bug #72116 (7.0.6 array_fill optimization breaks implementation)
2016-04-28 11:02:47 +02:00
Dmitry Stogov
6499162ff0
- get rid of EG(scope). zend_get_executed_scope() should be used instead.
...
- ichanged zval_update_constant_ex(). Use IS_TYPE_IMMUTABLE flag on shared constants and AST, instead of "inline_change" parameter.
2016-04-28 04:13:34 +03:00
Nikita Popov
d94b9545d6
Support known static/method calls in call graph
...
For this purpose extract the function lookup call into a helper
zend_optimizer_get_called_func().
2016-04-27 17:10:45 +02:00
Nikita Popov
4f54c15cb1
Ct bind private/final $this method call args
...
The test covers two edge-cases wrt opcache support.
2016-04-27 17:10:44 +02:00
Xinchen Hui
91ca55f9f4
Merge branch 'PHP-7.0'
...
* PHP-7.0:
Use zend_string_safe_alloc
2016-04-27 20:34:29 +08:00
Xinchen Hui
a05320c419
Use zend_string_safe_alloc
2016-04-27 20:29:11 +08:00
Anatol Belski
2613011b2e
Merge branch 'PHP-7.0'
...
* PHP-7.0:
fix/improve tests
2016-04-27 13:20:08 +02:00
Anatol Belski
25ef19f927
Merge branch 'PHP-5.6' into PHP-7.0
...
* PHP-5.6:
fix/improve tests
2016-04-27 13:19:29 +02:00
Anatol Belski
a21a997478
fix/improve tests
2016-04-27 13:16:57 +02:00
Dmitry Stogov
f0a2e8eb13
Removed "zend_fcall_info.function_table". It was assigned in many places, but is never used.
2016-04-27 13:46:38 +03:00
Anatol Belski
1a154c7db5
Merge branch 'PHP-7.0'
...
* PHP-7.0:
fix merge
Fix memory leak
Fix bug #72099 : xml_parse_into_struct segmentation fault
5.5.36 now
Fix bug #72094 - Out of bounds heap read access in exif header processing
Fix bug #72093 : bcpowmod accepts negative scale and corrupts _one_ definition
Fix bug #72061 - Out-of-bounds reads in zif_grapheme_stripos with negative offset
Fix for bug #71912 (libgd: signedness vulnerability)
Typo in NEWS
2016-04-27 12:30:34 +02:00
Anatol Belski
4bc97db0b8
fix merge
2016-04-27 12:24:28 +02:00
Anatol Belski
33d41da347
Merge branch 'PHP-5.6' into PHP-7.0
...
* PHP-5.6:
Fix memory leak
Fix bug #72099 : xml_parse_into_struct segmentation fault
5.5.36 now
Fix bug #72094 - Out of bounds heap read access in exif header processing
Fix bug #72093 : bcpowmod accepts negative scale and corrupts _one_ definition
Fix bug #72061 - Out-of-bounds reads in zif_grapheme_stripos with negative offset
Fix for bug #71912 (libgd: signedness vulnerability)
Typo in NEWS
2016-04-27 11:45:29 +02:00
Stanislav Malyshev
e315a162da
Merge branch 'PHP-5.5' into PHP-5.6
...
* PHP-5.5:
Fix memory leak
Fix bug #72099 : xml_parse_into_struct segmentation fault
5.5.36 now
Fix bug #72094 - Out of bounds heap read access in exif header processing
Fix bug #72093 : bcpowmod accepts negative scale and corrupts _one_ definition
Fix bug #72061 - Out-of-bounds reads in zif_grapheme_stripos with negative offset
Fix for bug #71912 (libgd: signedness vulnerability)
Typo in NEWS
Conflicts:
configure.in
main/php_version.h
2016-04-26 23:48:41 -07:00
Stanislav Malyshev
e35e5b2187
Merge branch 'PHP-7.0'
...
* PHP-7.0:
fix build
2016-04-26 23:04:40 -07:00
Stanislav Malyshev
a32e143d4e
fix build
2016-04-26 23:04:29 -07:00
Stanislav Malyshev
3bba9c7fba
Merge branch 'PHP-7.0'
...
* PHP-7.0:
Fix bug #71923 - integer overflow in ZipArchive::getFrom*
2016-04-26 22:59:25 -07:00
Stanislav Malyshev
ccc12efa32
Fix bug #71923 - integer overflow in ZipArchive::getFrom*
2016-04-26 22:59:09 -07:00
Stanislav Malyshev
61c7a06e7c
Fix memory leak
2016-04-26 22:54:58 -07:00
Stanislav Malyshev
dccda88f27
Fix bug #72099 : xml_parse_into_struct segmentation fault
2016-04-26 22:46:28 -07:00
Xinchen Hui
ea95621f71
Merge branch 'PHP-7.0'
...
* PHP-7.0:
Use zend_string_safe_alloc
2016-04-27 12:51:51 +08:00
Xinchen Hui
c89b7a4860
Use zend_string_safe_alloc
2016-04-27 12:45:02 +08:00
Dmitry Stogov
4da3eb8f13
Merge branch 'PHP-7.0'
...
* PHP-7.0:
Fixed test on 32-bit platforms (split into 32-bit and 64-bit versions)
2016-04-26 13:45:02 +03:00
Dmitry Stogov
4ce8a15eae
Merge branch 'PHP-5.6' into PHP-7.0
...
* PHP-5.6:
Fixed test on 32-bit platforms (split into 32-bit and 64-bit versions)
2016-04-26 13:44:52 +03:00
Dmitry Stogov
9f389cccfd
Fixed test on 32-bit platforms (split into 32-bit and 64-bit versions)
2016-04-26 13:43:18 +03:00
Dmitry Stogov
8eeedb6e48
Merge branch 'PHP-7.0'
...
* PHP-7.0:
Fixed bug #72100 (implode() inserts garbage into resulting string when joins very big integer). (Mikhail Galanin)
2016-04-26 13:06:16 +03:00
Dmitry Stogov
8f0ceb97cf
Fixed bug #72100 (implode() inserts garbage into resulting string when joins very big integer). (Mikhail Galanin)
2016-04-26 13:04:06 +03:00
Stanislav Malyshev
082aecfc3a
Fix bug #72094 - Out of bounds heap read access in exif header processing
2016-04-24 19:33:52 -07:00
Stanislav Malyshev
d650063a04
Fix bug #72093 : bcpowmod accepts negative scale and corrupts _one_ definition
...
We can not modify result since it can be copy of _zero_ or _one_, etc. and
"copy" in bcmath is just bumping the refcount.
2016-04-24 18:33:32 -07:00
Stanislav Malyshev
fd9689745c
Fix bug #72061 - Out-of-bounds reads in zif_grapheme_stripos with negative offset
2016-04-24 13:15:17 -07:00
Nikita Popov
434e0fb3a5
Take pi defs into account when propagating defs
...
Previously pi placement happened after initial phi placement.
Afterwards a second phi placement pass was performed, however it
incorrectly only placed phis on the dominance frontier, rather
than the iterated dominance frontier.
This is fixed by moving pi placement before the propagation of
defs on the iterated DFs, and adding a def for each added pi.
While this ensures that we generate correct conservative SSA, there
is still one remaining case in which we may generate non-minimal
SSA form. Consider:
|1|
|pi
v
|2|<--\
| |
\----/
The pi is semanically located along the edge 1->2, however we place
it (and its def point) in 2, thus leading to the generation of an
additional (trivial) phi in 2.
Conflicts:
ext/opcache/Optimizer/zend_ssa.c
2016-04-24 21:46:20 +02:00
Nikita Popov
721be3e0c1
Make pi placement independent of phi placement
...
This interdependence is problematic because we can't propagate pi
def points in the initial dominance frontier propagation. The used
rule for multiple-predecessor blocks may also miss cases where
placing the pi would have been useful.
The new heuristic for pi placement checks that a) the variable is
live-in and b) for the "from" block that generated the pi, the
other successor does not dominate all other predecessors of the
"to" block.
The purpose of case b) may be illustrated with an example:
if (is_int($i)) {
// place pi here
}
// but don't place pi here
The reason we do not want to place the second pi is that we generally
place pis in positive+negative pairs, and in this case the pair
would merge in a phi and cancel out, so we get no useful information
out of it.
2016-04-24 21:45:22 +02:00
Nikita Popov
65faf0a5a2
Drop some unnecessary checks
2016-04-24 17:15:46 +02:00
Nikita Popov
cafe78d12a
Introduce ZEND_BITSET_FOREACH macros
2016-04-24 17:05:13 +02:00