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