Commit Graph

41483 Commits

Author SHA1 Message Date
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