Skip to content

Commit

Permalink
ext/pcntl: Fix pcntl_setcpuaffinity exception type for invalid cpu id.
Browse files Browse the repository at this point in the history
found while working [on the doc](php/doc-en#4346).

close GH-17474
  • Loading branch information
devnexen committed Jan 15, 2025
1 parent 9aaa469 commit 6979a7a
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 7 deletions.
5 changes: 5 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,11 @@ PHP NEWS
. Fixed bug GH-17428 (Assertion failure ext/opcache/jit/zend_jit_ir.c:8940).
(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:
. Fix crashes in function registration + test. (nielsdos, Girgias)

Expand Down
4 changes: 1 addition & 3 deletions ext/pcntl/pcntl.c
Original file line number Diff line number Diff line change
Expand Up @@ -1720,9 +1720,7 @@ PHP_FUNCTION(pcntl_setcpuaffinity)

cpu = (zend_long)tmp;
} else {
zend_string *wcpu = zval_get_string_func(ncpu);
zend_argument_value_error(2, "cpu id invalid type (%s)", ZSTR_VAL(wcpu));
zend_string_release(wcpu);
zend_argument_type_error(2, "value must be of type int|string, %s given", zend_zval_value_name(ncpu));
PCNTL_CPU_DESTROY(mask);
RETURN_THROWS();
}
Expand Down
6 changes: 2 additions & 4 deletions ext/pcntl/tests/pcntl_cpuaffinity.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ try {

try {
pcntl_setcpuaffinity(null, [1, array(1)]);
} catch (\ValueError $e) {
} catch (\TypeError $e) {
echo $e->getMessage();
}
?>
Expand All @@ -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 (-1024)
pcntl_getcpuaffinity(): Argument #1 ($process_id) invalid process (-1024)

Warning: Array to string conversion in %s on line %d
pcntl_setcpuaffinity(): Argument #2 ($cpu_ids) cpu id invalid type (Array)
pcntl_setcpuaffinity(): Argument #2 ($cpu_ids) value must be of type int|string, array given

0 comments on commit 6979a7a

Please sign in to comment.