Christoph M. Becker
375ceefec0
Add missing zend_parse_parameters_none()
2019-10-05 18:22:01 +02:00
Christoph M. Becker
e3abc534eb
Add ext/pspell arginfo stubs
2019-10-05 11:11:52 +02:00
Christoph M. Becker
49b98b4d5c
Add arginfo stub for JsonSerializable
2019-10-05 11:10:30 +02:00
Nikita Popov
5050507282
Merge branch 'PHP-7.4'
2019-10-04 22:47:10 +02:00
Nikita Popov
b078ae6c01
Merge branch 'PHP-7.3' into PHP-7.4
2019-10-04 22:46:53 +02:00
Nikita Popov
239e2dda64
Make sure T_ERROR is returned for all lexer exceptions
...
This originally manifested as a leak in oss-fuzz #18000 . The following
is a reduced test case:
<?php
[
5 => 1,
"foo" > 1,
" " => "" == 0
];
<<<BAR
$x
BAR;
Because this particular error condition did not return T_ERROR,
EG(exception) was set while performing binary operation constant
evaluation, which checks exceptions for cast failures.
Instead of adding this indirect test case, I'm adding an assertion
that the lexer has to return T_ERROR if EG(exception) is set.
2019-10-04 22:42:14 +02:00
Nikita Popov
43358cc7b6
Merge branch 'PHP-7.4'
2019-10-04 16:04:42 +02:00
Nikita Popov
01b3cc4dee
Merge branch 'PHP-7.3' into PHP-7.4
2019-10-04 16:04:34 +02:00
Nikita Popov
1d6e9da743
Improve diagnostic on PCRE JIT mmap failure
...
Print a more informative message that indicates that this is
likely a permission issue, and also indicate that pcre.jit=0
can be used to work around it.
Also automatically disable the JIT, so that this message is
only shown once.
See bug #78630 .
2019-10-04 16:03:38 +02:00
Christoph M. Becker
487e6e9eca
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Split intl tests for ICU 65
2019-10-04 13:55:33 +02:00
Christoph M. Becker
884b780667
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Split intl tests for ICU 65
2019-10-04 13:54:49 +02:00
Christoph M. Becker
1ce8c805e2
Merge branch 'PHP-7.2' into PHP-7.3
...
* PHP-7.2:
Split intl tests for ICU 65
2019-10-04 13:53:58 +02:00
Christoph M. Becker
545412a6cd
Split intl tests for ICU 65
2019-10-04 13:53:22 +02:00
Nikita Popov
fec0ff8cb0
Merge branch 'PHP-7.4'
2019-10-04 12:42:58 +02:00
Nikita Popov
ca652aafa8
Fixed bug #78632
...
I'm going for a very conservative fix here, where the previous
logic is restored for the case where an object is passed to
method_exists(). We might want to check against EG(scope) instead,
but this seems like a safer choice.
This means that behavior in PHP 7.4 changes only for
method_exists('C', 'privateMethodNotOnC'), which should be sensible.
2019-10-04 12:41:49 +02:00
Dmitry Stogov
dc3c8c75da
Prefer optimization without JMPZNZ instruction
2019-10-04 12:52:46 +03:00
Nikita Popov
d44cf9b539
Replace "unexpected character" warning with ParseError
...
Closes GH-4767.
2019-10-04 11:28:58 +02:00
Nikita Popov
11d139625f
Merge branch 'PHP-7.4'
2019-10-04 10:39:32 +02:00
Nikita Popov
9659562cb5
Fix use-after-free with delayed interned memoized const operand
...
We should addref CONST operands during memoization, as they might
be destroyed by later compilation, e.g. through interning.
2019-10-04 10:38:11 +02:00
Nikita Popov
c10cd739a7
Merge branch 'PHP-7.4'
2019-10-04 10:12:16 +02:00
Nikita Popov
f26b60a583
Fix crash when unpacking into array literal with string keys
2019-10-04 10:11:30 +02:00
Christoph M. Becker
0edcd105f3
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix #78620 : Out of memory error
2019-10-04 09:14:36 +02:00
Christoph M. Becker
6627f782d6
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #78620 : Out of memory error
2019-10-04 09:11:18 +02:00
Dmitry Stogov
3f069b19a0
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #78614 (Does not compile with DTRACE anymore)
2019-10-04 10:10:53 +03:00
Dmitry Stogov
3ded328bea
Fixed bug #78614 (Does not compile with DTRACE anymore)
2019-10-04 10:10:22 +03:00
Christoph M. Becker
cf183a5e2c
Merge branch 'PHP-7.2' into PHP-7.3
...
* PHP-7.2:
Fix #78620 : Out of memory error
2019-10-04 09:09:39 +02:00
Christoph M. Becker
abaf9a76dc
Fix #78620 : Out of memory error
...
The integer addition in `ZEND_MM_ALIGNED_SIZE_EX` can overflow, what we
have to catch early.
2019-10-04 09:08:01 +02:00
Joe Watkins
26baf5454b
Merge branch 'PHP-7.4'
...
* PHP-7.4:
fix #78624 : session_gc return value for user defined session handlers
2019-10-04 06:16:41 +02:00
Joe Watkins
74ca3a5cad
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
fix #78624 : session_gc return value for user defined session handlers
2019-10-04 06:16:18 +02:00
Joe Watkins
f45eb353d1
Merge branch 'PHP-7.2' into PHP-7.3
...
* PHP-7.2:
fix #78624 : session_gc return value for user defined session handlers
2019-10-04 06:12:29 +02:00
Brent Shaffer
a6d219630c
fix #78624 : session_gc return value for user defined session handlers
2019-10-04 06:12:02 +02:00
Joe Watkins
4731f57882
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix typo in CODING_STANDARDS.md [ci skip]
2019-10-04 05:42:44 +02:00
tpfast
8069e1522d
Fix typo in CODING_STANDARDS.md [ci skip]
2019-10-04 05:42:27 +02:00
Dmitry Stogov
bf56daa8c8
Remove "finally" restriction.
2019-10-04 02:53:24 +03:00
Dmitry Stogov
204660fd9a
Simplify protection from infinity loops
2019-10-04 02:04:00 +03:00
Dmitry Stogov
3a78c3aaf5
Moved non-constant JMP optimizations from pass1 to pass3.
...
Removed useless "break"s, that stopped optimization too early.
2019-10-04 00:27:49 +03:00
Dmitry Stogov
39d1e50b2d
Avoid "$a = $a + ..." to "$a += ..." conversion (compound assignments work slower).
...
Added DFA optimization patters (e.g. "$a = $a + 1" to "++$a"), that previously worked only for compound assignments.
2019-10-03 16:33:17 +03:00
Dmitry Stogov
de3c1eb85e
Move obvious optimization patterns from pass1 directly to compiler
2019-10-03 14:57:20 +03:00
Dmitry Stogov
a5465728c2
Added missing rules
2019-10-03 14:56:02 +03:00
Dmitry Stogov
c1de93efbe
Fixed comments
2019-10-03 13:55:58 +03:00
Dmitry Stogov
59c828a8c4
Added missing rules
2019-10-03 13:54:08 +03:00
Joe Watkins
114060e2f2
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix bug #76809 (SSL settings aren't respected when persistent connection is reused)
2019-10-03 07:13:49 +02:00
Joe Watkins
5a8e7b95a1
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix bug #76809 (SSL settings aren't respected when persistent connection is reused)
2019-10-03 07:13:15 +02:00
Joe Watkins
f4d078b1c7
Merge branch 'PHP-7.2' into PHP-7.3
...
* PHP-7.2:
Fix bug #76809 (SSL settings aren't respected when persistent connection is reused)
2019-10-03 06:57:05 +02:00
Fábio Souto
9a2b42a5c1
Fix bug #76809 (SSL settings aren't respected when persistent connection is reused)
2019-10-03 06:56:21 +02:00
Joe Watkins
733a1e9df0
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix #76859 stream_get_line skips data if used with data-generating filter
2019-10-03 06:52:25 +02:00
Joe Watkins
de83036f13
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #76859 stream_get_line skips data if used with data-generating filter
2019-10-03 06:51:56 +02:00
Joe Watkins
5b1bb23edf
Merge branch 'PHP-7.2' into PHP-7.3
...
* PHP-7.2:
Fix #76859 stream_get_line skips data if used with data-generating filter
2019-10-03 06:51:10 +02:00
Konstantin Kopachev
05560b67bc
Fix #76859 stream_get_line skips data if used with data-generating filter
...
stream_get-line repeatedly calls php_stream_fill_read_buffer until
enough data is accumulated in buffer. However, when stream contains
filters attached to it, then each call to fill buffer essentially
resets buffer read/write pointers and new data is written over old.
This causes stream_get_line to skip parts of data from stream
This patch fixes such behavior, so fill buffer call will append.
2019-10-03 06:50:43 +02:00
Dmitry Stogov
1e4c553e0d
Cleanup JMP optimization rules
2019-10-03 04:26:40 +03:00