Nikita Popov
cdaf35033d
Improve "unsupported operands" error
...
By mentioning the operand types. We can do that now, as the
original operand types now remain available.
Closes GH-5330.
2020-04-01 11:26:43 +02:00
George Peter Banyard
a54ee6e591
Merge branch 'PHP-7.4'
2020-04-01 04:55:35 +02:00
George Peter Banyard
cc0052678a
Merge branch 'PHP-7.3' into PHP-7.4
2020-04-01 04:34:09 +02:00
George Peter Banyard
18dc9044f5
Fix bug 79441
2020-04-01 04:29:20 +02:00
George Peter Banyard
229dff9f08
Promote unsupported encoding warnings to ValueError
2020-04-01 00:54:36 +02:00
George Peter Banyard
21227dc1f1
Use php_mb_get_encoding instead of mbfl_name2encoding to get encoding
...
This reduces the number of places where the error message template is used.
Also promote the mb_check_encoding() warning to ValueError and add a test to cover the behaviour.
2020-03-31 23:39:39 +02:00
Nikita Popov
11f0e1d1cb
Move encoding fetching out of php_mb_convert_encoding()
2020-03-31 21:47:55 +02:00
Nikita Popov
857fe616fa
Remove unnecesary check in php_mb_check_encoding()
...
The caller makes sure that this is not NULL.
2020-03-31 21:02:00 +02:00
George Peter Banyard
daf45f68d2
Use explicit helper
2020-03-31 20:27:10 +02:00
George Peter Banyard
affc5a024a
Encoding argument is always MBREX(current_mbctype)
2020-03-31 20:27:10 +02:00
Máté Kocsis
b6229fbca2
Display nullability in type error messages for internal functions
...
Closes GH-5327
2020-03-31 16:55:36 +02:00
George Peter Banyard
90eeca2531
Convert some unknown encoding warnings to ValueErrors in ext/mbstring
...
Promotes only the warnings where the encoding comes only from a string.
Functions which accept an array of encodings will be fixed at a later stage.
Closes GH-5317
2020-03-31 16:34:18 +02:00
George Peter Banyard
55a3e5b99e
Promote some warnings to Errors in Zend basic functions
...
Closes GH-5325
2020-03-31 16:32:58 +02:00
Nikita Popov
8fd7f02ea4
Make cast_object handler required
...
Avoid subtle differences in behavior depending on whether the
handler is absent or returns FAILURE.
If you previously set cast_object to NULL, create a handler that
always returns FAILURE instead.
2020-03-31 14:37:49 +02:00
Máté Kocsis
36935e42ea
Improve undefined variable error messages
...
Closes GH-5312
2020-03-31 13:02:32 +02:00
Nikita Popov
6bf483a94a
Clarify SimpleXML comparison logic
2020-03-31 12:48:57 +02:00
Nikita Popov
fb5bfcb75b
Add a ZEND_UNCOMPARABLE value
...
To explicitly indicate that objects are uncomparable. For now
this has no functional difference from the usual 1 return value,
but makes intent clearer.
2020-03-31 12:36:48 +02:00
Nikita Popov
3ca08ee764
Make sure mbstring.internal_encoding deprecation is always thrown
...
It was not thrown if the setting was specified via -d at least.
2020-03-31 10:47:23 +02:00
Christoph M. Becker
12ca4fe65d
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix #79413 : session_create_id() fails for active sessions
2020-03-31 08:41:08 +02:00
Christoph M. Becker
d533fa15e6
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #79413 : session_create_id() fails for active sessions
2020-03-31 08:39:54 +02:00
Christoph M. Becker
b510250b8e
Fix #79413 : session_create_id() fails for active sessions
...
The comment on `PS_VALIDATE_SID_FUNC(files)` is very clear that the
function is supposed to return `SUCCESS` if the session already exists.
So to detect a collision, we have to check for `SUCCESS`, not
`FAILURE`.
We also fix the wrong condition in session_regenerate_id() as well.
2020-03-31 08:38:23 +02:00
George Peter Banyard
457380cae7
Drop wchar header check as always defined since C95
2020-03-31 00:14:56 +02:00
George Peter Banyard
aa47543cb4
Fix format for tm member objects as they are stored as integers
...
Closes GH-5326
2020-03-30 17:09:49 +02:00
Nikita Popov
8a2ce27bba
mb_detect_order(): Use proper array|string argument
2020-03-30 16:26:28 +02:00
Nikita Popov
500230fc85
Remove persistent arg from parse_encoding_array()
...
It is always zero.
2020-03-30 16:17:35 +02:00
Nikita Popov
b02b3539e7
mb_check_encoding(): Make var a proper array|string arg
2020-03-30 16:15:12 +02:00
Nikita Popov
50d07ff28c
mb_detect_encoding(): Use proper array|string parameter
...
Needed to add support for nullabiltiy in some places.
2020-03-30 16:15:12 +02:00
Tyson Andre
47ddd95836
Do constant evaluation for str_contains in opcache
...
Both arguments must be strings.
str_contains deliberately does not emit a warning for an empty needle.
Closes GH-5324
2020-03-30 09:54:38 -04:00
Nikita Popov
bb6523693c
mb_convert_variables(): Make $from an array|string argument
2020-03-30 15:51:04 +02:00
Nikita Popov
0d24422749
mb_convert_encoding(): Make $input a proper array|string arg
2020-03-30 15:41:55 +02:00
Nikita Popov
f24f6cbab9
mb_convert_encoding(): Make $from_encodings a proper array|string arg
...
Switching to FastZPP, as we don't support this in normal zpp.
2020-03-30 15:39:33 +02:00
Nikita Popov
7cea789cfc
Parse mb_convert_encoding() encodings only once
...
Instead of re-parsing them for every converted value. Also reuse
the generic parse_array() helper.
2020-03-30 14:54:15 +02:00
Nikita Popov
cd5a29b820
Properly report unknown encoding in encoding lists
...
And clean up the related array and list parsing code.
2020-03-30 14:46:59 +02:00
Dmitry Stogov
44390beb42
cleanup
2020-03-30 14:27:01 +03:00
Nikita Popov
ed850f2723
Move encoding fetching outside php_mb_stripos()
2020-03-30 12:29:11 +02:00
Dmitry Stogov
4c9ee6a8ca
Initialize variable numbers
2020-03-30 12:50:19 +03:00
Nikita Popov
f9e4c71506
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Don't check directory nlink in stat tests
2020-03-30 10:54:34 +02:00
Nikita Popov
b9b49cfb7b
Don't check directory nlink in stat tests
...
It seems like on many filesystems nlink for directories is the
number of subdirectories (plus two, due to . and ..). However,
this is not a POSIX requirement, and some filesystems don't
implement it this way. This seems to be the case for whatever is
used on the Travis AArch64 builders now.
2020-03-30 10:54:03 +02:00
Nikita Popov
a34480ec82
SCCP: Optimize strpos with empty needle
...
This is no longer special cases in PHP 8.
2020-03-30 10:37:22 +02:00
Christoph M. Becker
6b6f0d63f3
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix #74940 : DateTimeZone loose comparison always true
2020-03-30 09:18:20 +02:00
Christoph M. Becker
a2f8c78183
Fix #74940 : DateTimeZone loose comparison always true
...
Since `DateTimeZone` does not implement a `compare_objects` handler,
nor has any properties, two `DateTimeZone` instances always compare as
being equal, even if they designate totally different timezones. Even
worse, after calling `var_dump()` on these objects, the actual
comparison may yield a correct result.
We therefore introduce a `compare_objects` handlers, which prevents
different behavior before/after `var_dump()`, and which allows us to
clearly define the intended semantics.
2020-03-30 09:03:40 +02:00
Christoph M. Becker
2a1d7bd802
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix #79427 : Integer Overflow in shmop_open()
2020-03-30 08:58:45 +02:00
Christoph M. Becker
6f8045c47f
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #79427 : Integer Overflow in shmop_open()
2020-03-30 08:57:49 +02:00
Christoph M. Becker
a681b12820
Fix #79427 : Integer Overflow in shmop_open()
...
If `shm.shm_segsz > ZEND_LONG_MAX` the assignment to `shmop->size` a
few lines below would overflow, so we catch that early and bail out if
necessary.
2020-03-30 08:56:49 +02:00
Remi Collet
5fa17fbf94
Merge branch 'PHP-7.4'
...
* PHP-7.4:
NEWS
Fix #79424 ext/zip: don't use gl_pathc after call to globfree
2020-03-29 14:24:12 +02:00
Remi Collet
2292ef93d5
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #79424 ext/zip: don't use gl_pathc after call to globfree
2020-03-29 14:23:03 +02:00
Max Rees
04920645f1
Fix #79424 ext/zip: don't use gl_pathc after call to globfree
...
This breaks on Linux with the musl libc, since it zeroes out gl_pathc during
globfree.
2020-03-29 14:22:31 +02:00
Dmitry Stogov
099ffc2169
BIND_GLOBAL and BIND_STATIC don't use value of the first operand
2020-03-27 15:20:21 +03:00
Christoph M. Becker
9e77d5a9da
Fix #76999 : mb_regex_set_options() return current options
...
When setting new options, `mb_regex_set_options()` is supposed to
return the *previous* options.
2020-03-27 10:34:16 +01:00
Dmitry Stogov
150df5b17c
Removed useless variable
2020-03-27 12:24:15 +03:00