Nikita Popov
38d205a5b1
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix memory leak in mb_str_split
2020-01-28 17:40:07 +01:00
Nikita Popov
9fcaf25c93
Fix memory leak in mb_str_split
2020-01-28 17:39:49 +01:00
Nikita Popov
7db3a51884
Only fetch to_encoding once in mb_convert_encoding()
...
Instead of doing it on every conversion. This is both more efficient
and avoids generating multiple warnings.
2020-01-28 15:12:24 +01:00
George Peter Banyard
ba82e18755
Allow empty needle in mb_strrchr()
2020-01-25 12:22:01 +01:00
George Peter Banyard
986da2a436
Convert warnings to ValueError in mb_strpos function family.
...
Closes GH-5109
2020-01-24 23:59:22 +01:00
Nikita Popov
c2d0a413cc
Also use zend_memnrstr in mbfl_strpos
2020-01-24 11:42:54 +01:00
Nikita Popov
d504ad5717
Base mbfl_strpos on zend_memnstr
...
The same algorithm is also used by zend_memnstr, but it also has
a fast-path for short strings / needles, where a more naive
search performs better.
2020-01-24 11:29:34 +01:00
Nikita Popov
73b31302ed
Extract calculation of offset from pointer
2020-01-24 11:15:58 +01:00
Nikita Popov
9e0e8d5650
Handle mb_str(r)ipos offset consistently as well
2020-01-24 10:54:20 +01:00
Nikita Popov
ce6169832f
Move offset error checking into mbfl_strpos
...
This avoids calculating the full length only in order to validate
the offset, as mbfl_strpos needs to find the offset internally
anyway.
2020-01-24 10:50:02 +01:00
Nikita Popov
0f6d223ddb
Add #defines for mbfl_strpos error conditions
2020-01-24 10:02:41 +01:00
Christoph M. Becker
da9c206781
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix #79154 : mb_convert_encoding() can modify $from_encoding
2020-01-22 10:32:06 +01:00
Christoph M. Becker
ab846173e2
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #79154 : mb_convert_encoding() can modify $from_encoding
2020-01-22 10:30:25 +01:00
Christoph M. Becker
9be31a582a
Fix #79154 : mb_convert_encoding() can modify $from_encoding
...
We must not modify arrays passed by value.
2020-01-22 10:28:07 +01:00
Christoph M. Becker
4327b113a0
Fix test expectation
...
As of PHP 8.0.0, array to string conversion raises a warning.
2020-01-22 10:21:55 +01:00
Christoph M. Becker
8f4d07bff0
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix #79149 : SEGV in mb_convert_encoding with non-string encodings
2020-01-22 09:45:37 +01:00
Christoph M. Becker
94c9dc498f
Fix #79149 : SEGV in mb_convert_encoding with non-string encodings
...
We must not assume that `hash_entry` `IS_STRING`, but rather use
`encoding_str` which is guaranteed to be.
2020-01-22 09:43:51 +01:00
Stanislav Malyshev
545f77d313
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Update NEWS
Fix bug #79037 (global buffer-overflow in `mbfl_filt_conv_big5_wchar`)
Fix #79099 : OOB read in php_strip_tags_ex
Fix #79091 : heap use-after-free in session_create_id()
2020-01-20 22:47:28 -08:00
Stanislav Malyshev
a29c793381
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Update NEWS
Fix bug #79037 (global buffer-overflow in `mbfl_filt_conv_big5_wchar`)
Fix #79099 : OOB read in php_strip_tags_ex
Fix #79091 : heap use-after-free in session_create_id()
2020-01-20 22:47:01 -08:00
Stanislav Malyshev
25ec7eb346
Merge branch 'PHP-7.2' into PHP-7.3
...
* PHP-7.2:
Update NEWS
Fix bug #79037 (global buffer-overflow in `mbfl_filt_conv_big5_wchar`)
Fix #79099 : OOB read in php_strip_tags_ex
Fix #79091 : heap use-after-free in session_create_id()
2020-01-20 22:46:29 -08:00
Stanislav Malyshev
2bcbc95f03
Fix bug #79037 (global buffer-overflow in mbfl_filt_conv_big5_wchar)
2020-01-20 21:43:42 -08:00
Máté Kocsis
99db00b1f2
Fix #78880 Another round
2020-01-19 18:28:43 +01:00
Máté Kocsis
d1764ca330
Make error messages more consistent by fixing capitalization
...
Closes GH-5066 As a first step, let's capitalize their initial letter when it is applicable.
2020-01-17 14:52:46 +01:00
Máté Kocsis
afdaa91170
Fix #78880 : Final spelling fixes
2020-01-16 19:14:31 +01:00
George Peter Banyard
483efc7e50
Allow empty needles in mb_strpos and mb_strstr function family.
...
MBstring analogous implementation to 6d578482a9
Closes GH-4977
2020-01-07 22:53:35 +01:00
Máté Kocsis
aadd3aaed9
Use RETURN_THROWS() in various places
2020-01-03 21:10:24 +01:00
Máté Kocsis
7b4a4d2ace
Use RETURN_THROWS() after try_convert_to_string()
2020-01-03 17:04:06 +01:00
Máté Kocsis
12ce73a5bb
Use RETURN_THROWS() after zend_value_error()
2019-12-31 16:58:15 +01:00
Máté Kocsis
345703724c
Use RETURN_THROWS() during ZPP in most of the extensions
...
Except for some bigger ones: reflection, sodium, spl
2019-12-31 11:46:11 +01:00
Máté Kocsis
f3d5a5a9d3
Promote warnings to exceptions in string search related functions
...
GH-5004
2019-12-20 16:43:40 +01:00
Máté Kocsis
2ab123b84e
Convert string|array union parameter types
...
Closes GH-4995
2019-12-20 10:15:52 +01:00
George Peter Banyard
fdf45debdf
Remove deprecated behaviour of passing encoding as third parameter in mb_strrpos()
...
Merged GH-5011
2019-12-13 22:03:27 +01:00
George Peter Banyard
0a173abc84
Revert "Remove dead code in libmbfl, memory device"
...
Stop trusting CLion's automatic dead code detection because it seems to be wrong
more often than not.
This reverts commit 612c86db3e .
2019-12-13 18:43:14 +01:00
George Peter Banyard
612c86db3e
Remove dead code in libmbfl, memory device
2019-12-13 17:58:37 +01:00
Christoph M. Becker
1d69bf187f
Fix compiler warning
...
This cast is already done for all other _aliases, but this one has
apparently been missed so far.
2019-12-06 16:50:28 +01:00
Christoph M. Becker
1979c5d16f
Upgrade to Oniguruma 6.9.4
...
Oniguruma 6.9.4 fixes several CVEs.
2019-11-30 14:00:41 +01:00
Christoph M. Becker
8c4b0ddde5
Add missing skip checks
2019-11-29 23:50:05 +01:00
Christoph M. Becker
ff2140c49d
Partially revert "Adapt test cases for Oniguruma 6.9.4"
...
This partially reverts commit c55d09c2f5 ,
because `MB_ONIGURUMA_VERSION` is only available as of PHP 7.4.0, so
that change made no sense for PHP-7.3; we keep it for PHP-7.4, though.
We also stick with the modification to bug78633.phpt.
2019-11-29 23:40:30 +01:00
Christoph M. Becker
bf6c2932f4
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Adapt test cases for Oniguruma 6.9.4
2019-11-29 17:01:11 +01:00
Christoph M. Becker
2b700841c5
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Adapt test cases for Oniguruma 6.9.4
2019-11-29 17:00:11 +01:00
Christoph M. Becker
c55d09c2f5
Adapt test cases for Oniguruma 6.9.4
...
Apparently, bug 78633 has now really been fixed; the former fix only
catered to the buffer overflow, but yielded a wrong result. Also,
the order of the named captures has been fixed.
2019-11-29 16:59:19 +01:00
Máté Kocsis
27e83d0fb8
Add union return types for function stubs
2019-11-11 14:54:55 +01:00
Fabien Villepinte
a555cc0b3d
Clean DONE tags from tests
...
Remove most of the `===DONE===` tags and its variations.
Keep `===DONE===` if the test output otherwise becomes empty.
Closes GH-4872.
2019-11-07 21:31:47 +01:00
Christoph M. Becker
85874af404
Remove obsolete oniguruma.patch
...
The proper `SIZEOF_SIZE_T` definitions are available as of Oniguruma
6.9.1; no more need to patch.
2019-11-05 10:16:22 +01:00
Stanislav Malyshev
c797ed5cc7
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix #78633 : Heap buffer overflow (read) in mb_eregi
2019-10-20 23:20:26 -07:00
Stanislav Malyshev
d517c559fc
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #78633 : Heap buffer overflow (read) in mb_eregi
2019-10-20 23:20:16 -07:00
Christoph M. Becker
4f50d58cab
Fix #78633 : Heap buffer overflow (read) in mb_eregi
...
We backport kkos/oniguruma@15c4228aa2 .
2019-10-20 22:47:38 -07:00
Christoph M. Becker
e2100619ac
Expect appropriate parameter type in the first place
...
`mb_encode_numericentity()` and `mb_decode_numericentity()` accepted
arbitrary zvals as `$convmap`, but ignored anything else than arrays.
This appears to be an unresolved relict of their ZPP conversion for
PHP 5.3[1]. We now expect an array in the first place.
We also expect `count($convmap)` to be a multiple of four (else we
throw a `ValueError`), and do no longer special case empty `$convmap`.
[1] <http://git.php.net/?p=php-src.git;a=commit;h=1c77f594294aee9d60e7309279c616c01c39ba9d >
2019-10-07 16:48:08 +02:00
Nikita Popov
2fcd454480
Merge branch 'PHP-7.4'
2019-10-07 10:51:22 +02:00
Nikita Popov
5b067163be
Limit retry_limit test to oniguruma >= 6.9.3
...
This test is somewhat fragile in that it depends on how well a
particular regex is optimized. Apparently on 6.9.1 this regex
would hit the default retry_limit of 1000000 already. I'm limiting
this to 6.9.3 because that's the version that works for me.
2019-10-07 10:49:34 +02:00