1
0
mirror of https://github.com/php/php-src.git synced 2026-04-07 08:02:49 +02:00
Commit Graph

14271 Commits

Author SHA1 Message Date
Ilija Tovilo
a145b40fa6 Fix uouv in password_needs_rehash() and password_hash() 2023-07-31 15:18:13 +02:00
Ilija Tovilo
2053af6628 Fix uouv in array_column
column_long and index_long might not be set, but are still used as arguments.
They are not actually used if column_str is set, but it's better to initialize
them anyway, if only to make MemorySanitizer happy.
2023-07-31 15:18:13 +02:00
tekimen
092726fb1e Fix GH-11785: '++nothing+crc' is not a recognized feature for M1 / M2 macOS compile target (#11796)
#pragma GCC target("+nothing+crc") is means clear outs aarch64_isa_flags.

However, #pragma clang attribute push(__attribute__((target("+nothing+crc") is not means any, then displays ignore feature. (Not reproduce Linux on ARM (ex: Raspberry Pi))

Therefore, Add new #pragma when compiling on M1/M2 macOS.
2023-07-29 06:00:47 +01:00
Niels Dossche
4855226f4c Merge branch 'PHP-8.2'
* PHP-8.2:
  Prevent int overflow on $decimals in number_format
2023-07-21 13:58:57 +02:00
Niels Dossche
31bd62865f Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Prevent int overflow on $decimals in number_format
2023-07-21 13:51:04 +02:00
Marc Bennewitz
429f20e981 Prevent int overflow on $decimals in number_format
Closes GH-11714.
Closes GH-11649.
2023-07-21 13:50:18 +02:00
tekimen
451cbbb6fb Fix warning crc32.c on function declaration without a prototype. (#11742) 2023-07-19 10:46:30 +02:00
Máté Kocsis
c322da0606 Fix misleading pass by reference error message (#10639) 2023-07-18 15:02:38 +02:00
Máté Kocsis
a5ad7e09d5 Implement stream_context_set_options() 2023-07-18 12:59:21 +02:00
Máté Kocsis
4acf0084dc Deprecate calling FFI::cast(), FFI::new(), and FFI::type() statically 2023-07-18 12:59:21 +02:00
Gabriel Fontes
cd9dba81c7 small fixes 2023-07-18 08:31:02 +01:00
Ilija Tovilo
a48b977d3f Use :- as ini interpolation fallback separator 2023-07-18 08:31:02 +01:00
Gabriel Fontes
bc8b9aedf6 Add fallback value syntax for ini variables 2023-07-18 08:31:02 +01:00
George Peter Banyard
d8696f9216 [RFC] Path to Saner Increment/Decrement operators (#10358)
* Add behavioural tests for incdec operators

* Add support to ++/-- for objects castable to _IS_NUMBER

* Add str_increment() function

* Add str_decrement() function

RFC: https://wiki.php.net/rfc/saner-inc-dec-operators

Co-authored-by: Ilija Tovilo <ilija.tovilo@me.com>
Co-authored-by: Arnaud Le Blanc <arnaud.lb@gmail.com>
2023-07-17 15:51:24 +01:00
Arnaud Le Blanc
d0731934b7 Expose time spent collecting cycles in gc_status() (#11523) 2023-07-16 12:34:28 +02:00
George Peter Banyard
3d4ff5ae22 RFC: Deprecate remains of string evaluated code assertions (#11671)
Link: https://wiki.php.net/rfc/assert-string-eval-cleanup
2023-07-13 15:45:32 +01:00
Marc Bennewitz
591f3f619e Prevent decimal int precision loss in number_format()
Closes GH-11584
2023-07-13 15:30:30 +01:00
Jorg Adam Sowa
0313640b48 Reorder list construction in the function php_intpow10 (#11683)
* Reorder array construction in the function
* Optimize function php_intlog10abs
2023-07-13 13:46:45 +01:00
Cristian Rodríguez
5572975ba7 proc_open: Use posix_spawn(3) interface on systems where it is profitable
As the size of the PHP process increases, forking gets slower and memory
consumption increases, degrading the performance in varying degrees.

This patch makes proc_open use posix_spawn only on systems which is known to be
safe, faster than the HAVE_FORK path and have posix_spawn_file_actions_addchdir_np(3)
action.
Non scientific benchmark shows running php own's test suite on linux completes
dozens of seconds faster, the impact is probably higher on systems where
posix_spawn is a syscall.

Closes GH-7933
2023-07-13 13:29:42 +01:00
Niels Dossche
c1d4d9599a Merge branch 'PHP-8.2'
* PHP-8.2:
  Fix tests for stat rdev
2023-07-11 13:57:34 +02:00
Niels Dossche
47b7570f07 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix tests for stat rdev
2023-07-11 13:57:28 +02:00
Niels Dossche
6b87e08b82 Fix tests for stat rdev
If HAVE_STRUCT_STAT_ST_RDEV is not set, rdev will be -1. %d only matches
a natural number, we should let it match negative numbers too.
2023-07-11 13:57:17 +02:00
George Peter Banyard
39ef5ca31c Add tests for uncastable streams and dataloss streams (#10173)
And suppress the nonsensical warnings by passing the PHP_STREAM_CAST_INTERNAL flag.
2023-07-10 13:24:23 +01:00
Niels Dossche
4863d93c96 Merge branch 'PHP-8.2'
* PHP-8.2:
  Fix GH-11630: proc_nice_basic.phpt only works at certain nice levels
  Fix GH-11629: bug77020.phpt tries to send mail
  Fix GH-11625: DOMElement::replaceWith() doesn't replace node with DOMDocumentFragment but just deletes node or causes wrapping <></> depending on libxml2 version
2023-07-10 13:42:44 +02:00
Niels Dossche
57ff1c354e Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix GH-11630: proc_nice_basic.phpt only works at certain nice levels
  Fix GH-11629: bug77020.phpt tries to send mail
  Fix GH-11625: DOMElement::replaceWith() doesn't replace node with DOMDocumentFragment but just deletes node or causes wrapping <></> depending on libxml2 version
2023-07-10 13:34:21 +02:00
Niels Dossche
c408a8b604 Fix GH-11630: proc_nice_basic.phpt only works at certain nice levels
Closes GH-11635.
2023-07-10 13:30:00 +02:00
Niels Dossche
a7f7022359 Avoid copying the stat buffer on a cache hit
Closes GH-11628.
2023-07-09 23:00:22 +02:00
Marc Bennewitz
e85fb0902c number_format() Support rounding negative places
Closes GH-11487
2023-07-09 14:05:32 +01:00
Jakub Zelenka
4a5d13e205 Fix GH-11242: Use dynamic buffer for large length in stream mem copy 2023-07-08 11:43:05 +01:00
Niels Dossche
0b2e6bc2b0 Cache d_type in directory entry 2023-07-07 18:02:32 +02:00
Ilija Tovilo
aa87793e59 Refine skipif for cirrus+arm
Closes GH-11612
2023-07-07 13:49:27 +02:00
Ilija Tovilo
b0a2727749 Merge branch 'PHP-8.2'
* PHP-8.2:
  Implement flaky test section
2023-07-06 09:46:15 +02:00
Ilija Tovilo
4e3d9b26f9 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Implement flaky test section
2023-07-06 09:46:03 +02:00
Ilija Tovilo
849fdcae7d Implement flaky test section
This re-uses the already used for automatic retesting. That's certainly better
than XFAIL.

Closes GH-11325
2023-07-06 09:45:35 +02:00
Ilija Tovilo
dde1d9e102 Merge branch 'PHP-8.2'
* PHP-8.2:
  Retire AppVeyor
2023-07-05 15:17:11 +02:00
Ilija Tovilo
80153c9c2b Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Retire AppVeyor
2023-07-05 15:16:01 +02:00
Ilija Tovilo
f47dc259aa Retire AppVeyor
Closes GH-11566
2023-07-05 15:14:20 +02:00
Ilija Tovilo
7b355e8d34 Revert "Merge branch 'PHP-8.2'"
This reverts commit 45a3f178dc, reversing
changes made to b2a54bc6af.
2023-07-04 09:18:49 +02:00
Ilija Tovilo
ef4f08832c Revert "Fix GH-9967 Add support for generating custom function, class const, and property attributes in stubs"
This reverts commit d7ab0ff0c8.
2023-07-04 09:11:14 +02:00
Máté Kocsis
45a3f178dc Merge branch 'PHP-8.2'
* PHP-8.2:
  Fix GH-9967 Add support for generating custom function, class const, and property attributes in stubs

Closes GH-10170
2023-07-03 11:17:08 +02:00
Máté Kocsis
d7ab0ff0c8 Fix GH-9967 Add support for generating custom function, class const, and property attributes in stubs 2023-07-03 08:32:58 +02:00
Ilija Tovilo
ff8c2902be Merge branch 'PHP-8.2'
* PHP-8.2:
  Fix serialization of RC1 objects appearing in object graph twice
2023-06-28 21:17:24 +02:00
Ilija Tovilo
6b9d295674 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix serialization of RC1 objects appearing in object graph twice
2023-06-28 21:16:51 +02:00
Ilija Tovilo
d7d36692fd Fix serialization of RC1 objects appearing in object graph twice
Previously, if an object had RC1 it would never be recorded in
php_serialize_data.ht because it was assumed that it could not be encountered
again. This assumption is incorrect though as the object itself may be saved
inside an array with RCn. This results in a new instance of the object, instead
of a second reference to the same object.

This is solved by tracking these objects in php_serialize_data.ht. To retain
performance, track if the current object resides in a potentially nested RCn
array. If not, and if the object is RC1 itself it may be omitted from
php_serialize_data.ht.

Additionally, we may treat the array root itself as RC1 because it may not
appear in the object graph again without recursion. Recursive arrays are still
somewhat broken even with this change, as the tracking of the array only happens
when the reference is encountered, thus resulting in a -> a' -> a' for a self
recursive array a -> a. Recursive arrays have limited support in serialize
anyway, so we ignore this case for now.

Co-authored-by: Dmitry Stogov <dmitry@zend.com>
Co-authored-by: Martin Hoch <martin@littlerobot.de>

Closes GH-11349
Closes GH-11305
2023-06-28 21:15:03 +02:00
Niels Dossche
10f8809495 Merge branch 'PHP-8.2'
* PHP-8.2:
  Fix context option check for "overwrite" in FTP
2023-06-27 17:57:20 +02:00
Niels Dossche
1288c07ba6 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix context option check for "overwrite" in FTP
2023-06-27 17:54:39 +02:00
Jonas
1d369a871d Fix context option check for "overwrite" in FTP
Use zend_is_true() to read value of FTP context option "overwrite".

Closes GH-11332.
2023-06-27 17:53:45 +02:00
hanshenrik
3b0e61956e fix file() flags error-check
the old flag check was flawed and would miss some flags, for example:
file(__FILE__, FILE_APPEND);
is invalid, but the old flags error check would miss it: https://3v4l.org/b2W9u

Closes GH-11483
2023-06-23 11:06:24 +02:00
Ilija Tovilo
8c243c2132 [skip ci] Skip dl tests on asan
These tests fail intermittently on ASAN on GitHub actions. We cannot reproduce
this locally.
2023-06-22 11:21:11 +02:00
divinity76
4960070918 support running testsuite with negative niceness (#11481)
* support running testsuite with negative niceness

a bug in the regex would break getNice() if the current niceness was negative, which would make the whole test fail.

Previously:
this would fail:
time sudo nice --adjustment=-19 ./php run-tests.php -j$(nproc) -x --offline ext/standard/tests/general_functions/proc_nice_basic.phpt --color --show-all

and this would work: 
time sudo ./php run-tests.php -j$(nproc) -x --offline ext/standard/tests/general_functions/proc_nice_basic.phpt --color --show-all

* Update ext/standard/tests/general_functions/proc_nice_basic.phpt

Co-authored-by: Michael Voříšek <mvorisek@mvorisek.cz>

---------

Co-authored-by: Michael Voříšek <mvorisek@mvorisek.cz>
2023-06-21 20:16:26 +02:00