1
0
mirror of https://github.com/php/php-src.git synced 2026-03-28 10:12:18 +01:00
Commit Graph

402 Commits

Author SHA1 Message Date
Calvin Buckley
7c9f645393 Fix FD getting code on big endian (#17259)
* Fix FD getting code on big endian (PHP 8.3)

stream casting as FD returns a php_socket_t, which is an int, but
zend_long is 64-bit (on those platforms). This works on LE by
accidental (unless it forgets to clear the high word), but is fatal
on big endian.

* change cast to match sig
2024-12-30 12:40:32 -04:00
Ilija Tovilo
5c8f42f05c Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [skip ci] Mark some more macOS tests as flaky
2024-10-13 02:07:11 +02:00
Ilija Tovilo
b6ca871396 [skip ci] Mark some more macOS tests as flaky 2024-10-13 02:06:57 +02:00
Peter Kokot
9e63e20a2c Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Fix GH-15515: Configure error grep illegal option q (#15516)
2024-08-21 15:54:56 +02:00
Arnaud Le Blanc
c12fd0873b Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [ci skip] NEWS
  fix: zend-max-execution-timers with negative or high timeout value (#13942)
  Use return value of getpwuid_r(), not errno (#13969)
2024-04-16 14:19:35 +02:00
Arnaud Le Blanc
32efc76c32 Use return value of getpwuid_r(), not errno (#13969) 2024-04-16 14:08:28 +02:00
Arnaud Le Blanc
d986b5c66d Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [ci skip] NEWS
  Fix usage of reentrant functions in ext/posix (#13921)
2024-04-11 13:29:49 +02:00
Arnaud Le Blanc
66809c05b7 Fix usage of reentrant functions in ext/posix (#13921)
- It's not necessarily an error of sysconf(_SC_GETPW_R_SIZE_MAX) returns -1, as
  specified by posix (and the musl implementation always returns -1). Pick an
  initial buffer size in this case.
- Reentrant variants return an error number an may not set errno
- Implement retry logic for ttyname_r()
- Fix retry logic for getpwnam_r() (pw would be NULL after the first try)
- Test retry logic by setting the initial buffer size to 1 in debug builds
2024-04-11 13:27:39 +02:00
Peter Kokot
ff2b50889c Refactor checks for fpathconf and pathconf
These two might not be available everywhere so we check them in
config.m4 when doing the configure step. Check is skipped for musl libc
due to limited implementation.

Constants that are defined into main/php_config.h:
HAVE_FPATHCONF
HAVE_PATHCONF

Implemented via GH-10238
Related to GH-10350
Fixes GH-12725
2023-11-20 13:39:21 +00:00
Ilija Tovilo
66e2aa7255 Fix use-of-uninitialized-value when calling php_posix_stream_get_fd (#11694)
Passing a double pointer to php_stream_cast means the caller of
php_posix_stream_get_fd will never receive the actual value. Moreover,
php_posix_stream_get_fd may only write the low sizeof(php_socket_t) bytes of fd,
so we need to initialize the upper bytes to 0 to avoid partial
use-of-uninitialized-value.
2023-07-13 15:21:36 +02:00
George Peter Banyard
59f6d08f83 ext/posix: posix_isatty() fix use-of-uninitialized-value (#11676)
When the value passed is not representable as an int then it is not a TTY and thus should return false immediately.

This was reported by MSAN.
2023-07-11 23:55:18 +01: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
Ilija Tovilo
50f58c8923 Add ASAN XLEAK support
Only disable LSAN instead of skipping the test. This way we can still detect
memory issues which is arguably more important anyway.

Closes GH-10996
2023-04-03 08:02:19 +02:00
David CARLIER
717f460fa4 ext/posix: posix_eaccess little update and forgotten UPGRADING entry. (#10965) 2023-03-29 20:08:42 +01:00
David CARLIER
2b354318d9 ext/posix: proposing posix_eaccess. unlike access, it is not standard but available in enough platforms ; on linux it's euidaccess in reality eaccess being 'just' an alias. key difference is eaccess checks the effective user id instead.
Close GH-10917
2023-03-27 22:32:16 +01:00
Cristian Rodríguez
ab3f871846 posix: fix misuse of bool (invalid code in c23)
a bool pointer argument cannot take true or false but either &boolval
or NULL

Closes GH-10577.
2023-02-13 19:40:03 +00:00
David Carlier
dee39518a0 posix detects posix_pathconf api.
alpine linux throws undefined reference at build time, thus
 not assuming it s necessarily available.

Closes GH-10350.
2023-01-23 17:49:34 +00:00
Máté Kocsis
7936c8085e Fix GH-8329 Print true/false instead of bool in error and debug messages (#8385) 2023-01-23 10:52:14 +01:00
David Carlier
55d19eee49 posix adding posix_fpathconf.
follow-up on GH-10238 but with the file descriptor flavor.

Close GH-10253
2023-01-12 22:15:31 +00:00
David Carlier
61cf7d49ab posix_pathconf throwing ValueError on empty path 2023-01-10 15:03:11 +00:00
David CARLIER
84af629e7e follow-up on GH-10238. (#10243)
fixes based on feedback.
2023-01-06 18:03:59 +00:00
David Carlier
69d49e4dd7 posix adding posix_pathconf.
to get configuration variables from a directory/file.
Closes GH-10238.
2023-01-06 14:59:02 +00:00
George Peter Banyard
31e7d6ef05 Check that int file descriptor is valid for posix_(isatty|ttyname) 2023-01-04 19:55:36 +00:00
George Peter Banyard
54767b1047 Manually handle int ZPP for posix_isatty()/posix_ttyname() 2023-01-04 19:55:36 +00:00
David Carlier
2a8cecdc3d Merge branch 'PHP-8.2' 2023-01-02 16:55:54 +00:00
David Carlier
acb1af802d Merge branch 'PHP-8.1' into PHP-8.2 2023-01-02 16:55:03 +00:00
Niels Dossche
d5f0362e59 Fix GH-10202: posix_getgr(gid|nam)_basic.phpt fail
The issue was that passwd was empty for the issue reporter, but the test
expected passwd to be non-empty. An empty passwd can occur if there is
no (encrypted) group password set up.
2023-01-02 16:54:47 +00:00
George Peter Banyard
11f6022365 Merge branch 'PHP-8.2'
* PHP-8.2:
  Fix GH-10187: Segfault in stripslashes() with arm64
  Fix memory leak in posix_ttyname()
2022-12-30 16:43:05 +00:00
George Peter Banyard
e6c9b176d4 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix GH-10187: Segfault in stripslashes() with arm64
  Fix memory leak in posix_ttyname()
2022-12-30 16:42:45 +00:00
George Peter Banyard
c2b0be5570 Fix memory leak in posix_ttyname()
Closes GH-10190
2022-12-30 16:24:28 +00:00
Ilija Tovilo
edd6fd7cad [skip ci] Mark posix_getrlimit test as un-repeatable
The test assumes that the hard-limit is unlimited at script entrance
which doesn't hold on the second run.
2022-10-28 10:48:11 +02:00
Ilija Tovilo
c3b9b0f9a7 Fix stub type info for posix_getrlimit 2022-10-28 10:44:08 +02:00
Ilija Tovilo
d10a04b391 Allow specifying resource in posix_getrlimit() for single result
Closes GH-9790
2022-10-27 10:46:09 +02:00
David Carlier
a5a8b5ff7e posix add sysconf call.
providing handful of common and most used constants.

Closes GH-9481.
2022-09-04 17:11:25 +01:00
Máté Kocsis
b4ec3e9bc0 Do not generate CONST_CS when registering constants (#9439) 2022-08-28 08:27:19 +02:00
Máté Kocsis
17f3631d95 Declare ext/posix constants in stubs (#9095) 2022-07-22 13:08:58 +02:00
Máté Kocsis
c8f858ef49 Add more specific array return type hints for various extensions - part 4 (#7469) 2021-09-06 17:14:52 +02:00
Patrick Allaert
aff365871a Fixed some spaces used instead of tabs 2021-06-29 11:30:26 +02:00
Nikita Popov
39131219e8 Migrate more SKIPIF -> EXTENSIONS (#7139)
This is a mix of more automated and manual migration. It should remove all applicable extension_loaded() checks outside of skipif.inc files.
2021-06-11 12:58:44 +02:00
Nikita Popov
7485978339 Migrate SKIPIF -> EXTENSIONS (#7138)
This is an automated migration of most SKIPIF extension_loaded checks.
2021-06-11 11:57:42 +02:00
George Peter Banyard
b6958bb847 Implement "Deprecate implicit non-integer-compatible float to int conversions" RFC. (#6661)
RFC: https://wiki.php.net/rfc/implicit-float-int-deprecate

Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
2021-05-31 15:48:45 +01:00
Nikita Popov
28c27cdbe5 Skip posix_setrlimit() test on FreeBSD
FreeBSD does not report an error on the second call, the limit is
simply not raised.
2021-05-19 16:59:27 +02:00
Nikita Popov
87e76851e8 Fix posix getpwnum/getpwuid tests with empty passwd
On Linux passwd is "x", on FreeBSD it is just "".

Also switch the test to use EXPECTF, I don't see a reason why it
should use EXPECTREGEX.
2021-05-18 17:07:06 +02:00
KsaR
01b3fc03c3 Update http->https in license (#6945)
1. Update: http://www.php.net/license/3_01.txt to https, as there is anyway server header "Location:" to https.
2. Update few license 3.0 to 3.01 as 3.0 states "php 5.1.1, 4.1.1, and earlier".
3. In some license comments is "at through the world-wide-web" while most is without "at", so deleted.
4. fixed indentation in some files before |
2021-05-06 12:16:35 +02:00
Nikita Popov
2973a71a91 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fix gidlist allocation leak on error
2021-04-11 10:38:16 +02:00
Nikita Popov
26d417d758 Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Fix gidlist allocation leak on error
2021-04-11 10:38:07 +02:00
Nikita Popov
454d297564 Fix gidlist allocation leak on error 2021-04-11 10:37:40 +02:00
Nikita Popov
7f4513f1cb Merge branch 'PHP-8.0'
* PHP-8.0:
  Support more than NGROUPS_MAX groups on macos
2021-04-08 12:25:26 +02:00
Nikita Popov
032905b5a0 Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Support more than NGROUPS_MAX groups on macos
2021-04-08 12:25:16 +02:00
Nikita Popov
eebcfeb68e Support more than NGROUPS_MAX groups on macos
I suspect this is the cause for our recent CI failures. Apparently,
on macos it is possible for getgroups() to return more than
NGROUPS_MAX groups. We avoid an EINVAL in that case by fetching
the exact number of groups in advance. This should work on both
macos and posix systems.
2021-04-08 12:23:39 +02:00