ext/pcntl: Fix pcntl_setcpuaffinity exception type for invalid cpu id.

found while working [on the doc](https://github.com/php/doc-en/pull/4346).

close GH-17474
This commit is contained in:
David Carlier 2025-01-14 21:05:52 +00:00
parent 9aaa469f99
commit 6979a7a954
No known key found for this signature in database
GPG key ID: 2FB76A8CE6CD2B41
3 changed files with 8 additions and 7 deletions

5
NEWS
View file

@ -47,6 +47,11 @@ PHP NEWS
. Fixed bug GH-17428 (Assertion failure ext/opcache/jit/zend_jit_ir.c:8940). . Fixed bug GH-17428 (Assertion failure ext/opcache/jit/zend_jit_ir.c:8940).
(nielsdos) (nielsdos)
- PCNTL:
. Fixed pcntl_setcpuaffinity exception type from ValueError to TypeError for
the cpu mask argument with entries type different than int/string.
(David Carlier)
- PHPDBG: - PHPDBG:
. Fix crashes in function registration + test. (nielsdos, Girgias) . Fix crashes in function registration + test. (nielsdos, Girgias)

View file

@ -1720,9 +1720,7 @@ PHP_FUNCTION(pcntl_setcpuaffinity)
cpu = (zend_long)tmp; cpu = (zend_long)tmp;
} else { } else {
zend_string *wcpu = zval_get_string_func(ncpu); zend_argument_type_error(2, "value must be of type int|string, %s given", zend_zval_value_name(ncpu));
zend_argument_value_error(2, "cpu id invalid type (%s)", ZSTR_VAL(wcpu));
zend_string_release(wcpu);
PCNTL_CPU_DESTROY(mask); PCNTL_CPU_DESTROY(mask);
RETURN_THROWS(); RETURN_THROWS();
} }

View file

@ -48,7 +48,7 @@ try {
try { try {
pcntl_setcpuaffinity(null, [1, array(1)]); pcntl_setcpuaffinity(null, [1, array(1)]);
} catch (\ValueError $e) { } catch (\TypeError $e) {
echo $e->getMessage(); echo $e->getMessage();
} }
?> ?>
@ -64,6 +64,4 @@ pcntl_setcpuaffinity(): Argument #2 ($cpu_ids) cpu id invalid value (def)
pcntl_setcpuaffinity(): Argument #2 ($cpu_ids) cpu id must be between 0 and %d (%d) pcntl_setcpuaffinity(): Argument #2 ($cpu_ids) cpu id must be between 0 and %d (%d)
pcntl_setcpuaffinity(): Argument #2 ($cpu_ids) cpu id must be between 0 and %d (-1024) pcntl_setcpuaffinity(): Argument #2 ($cpu_ids) cpu id must be between 0 and %d (-1024)
pcntl_getcpuaffinity(): Argument #1 ($process_id) invalid process (-1024) pcntl_getcpuaffinity(): Argument #1 ($process_id) invalid process (-1024)
pcntl_setcpuaffinity(): Argument #2 ($cpu_ids) value must be of type int|string, array given
Warning: Array to string conversion in %s on line %d
pcntl_setcpuaffinity(): Argument #2 ($cpu_ids) cpu id invalid type (Array)