Fix return value of pcntl_wextistatus() (fixes #47566,

patch by james at jamesreno dot com)
This commit is contained in:
Arnaud Le Blanc 2009-05-26 14:00:42 +00:00
parent 8b43f4fddc
commit 8620c10b3e
3 changed files with 21 additions and 4 deletions

View File

@ -607,9 +607,7 @@ PHP_FUNCTION(pcntl_wexitstatus)
return;
}
/* WEXITSTATUS only returns 8 bits so we *MUST* cast this to signed char
if you want to have valid negative exit codes */
RETURN_LONG((signed char) WEXITSTATUS(status_word));
RETURN_LONG(WEXITSTATUS(status_word));
#else
RETURN_FALSE;
#endif

View File

@ -73,7 +73,7 @@ test_stop_signal();
Staring wait.h tests....
Testing pcntl_wifexited and wexitstatus....
Exited With: -1
Exited With: 255
Testing pcntl_wifsignaled....
Process was terminated by signal : SIGTERM

View File

@ -0,0 +1,19 @@
--TEST--
Bug #47566 (return value of pcntl_wexitstatus())
--SKIPIF--
<?php if (!extension_loaded("pcntl")) print "skip"; ?>
--FILE--
<?
$pid = pcntl_fork();
if ($pid == -1) {
echo "Unable to fork";
exit;
} elseif ($pid) {
$epid = pcntl_waitpid(-1,$status);
var_dump(pcntl_wexitstatus($status));
} else {
exit(128);
}
?>
--EXPECT--
int(128)