From 78c1ef2adbd3f9383659326cc85e7f45fef639ae Mon Sep 17 00:00:00 2001 From: Sam Ding Date: Fri, 23 Feb 2018 10:11:18 -0500 Subject: [PATCH] Fix #75873: pcntl_wexitstatus returns incorrect on Big_Endian platform (s390x) Cf. https://github.com/php/php-src/pull/3141. --- NEWS | 4 ++++ ext/pcntl/pcntl.c | 15 ++++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/NEWS b/NEWS index 6c4e5372393..7dcc0b8473c 100644 --- a/NEWS +++ b/NEWS @@ -36,6 +36,10 @@ PHP NEWS - OpenSSL: . Fixed openssl_* arginfos. (carusogabriel) +- PCNTL: + . Fixed bug #75873 (pcntl_wexitstatus returns incorrect on Big_Endian platform + (s390x)). (Sam Ding) + - PGSQL: . Fixed #75838 (Memory leak in pg_escape_bytea()). (ard_1 at mail dot ru) diff --git a/ext/pcntl/pcntl.c b/ext/pcntl/pcntl.c index ef05cc35a3c..886099c5733 100644 --- a/ext/pcntl/pcntl.c +++ b/ext/pcntl/pcntl.c @@ -761,9 +761,10 @@ PHP_FUNCTION(pcntl_wifexited) return; } - if (WIFEXITED(status_word)) + if (WIFEXITED((int)status_word)) RETURN_TRUE; #endif + RETURN_FALSE; } /* }}} */ @@ -779,7 +780,7 @@ PHP_FUNCTION(pcntl_wifstopped) return; } - if (WIFSTOPPED(status_word)) + if (WIFSTOPPED((int)status_word)) RETURN_TRUE; #endif RETURN_FALSE; @@ -797,7 +798,7 @@ PHP_FUNCTION(pcntl_wifsignaled) return; } - if (WIFSIGNALED(status_word)) + if (WIFSIGNALED((int)status_word)) RETURN_TRUE; #endif RETURN_FALSE; @@ -814,7 +815,7 @@ PHP_FUNCTION(pcntl_wifcontinued) return; } - if (WIFCONTINUED(status_word)) + if (WIFCONTINUED((int)status_word)) RETURN_TRUE; #endif RETURN_FALSE; @@ -833,7 +834,7 @@ PHP_FUNCTION(pcntl_wexitstatus) return; } - RETURN_LONG(WEXITSTATUS(status_word)); + RETURN_LONG(WEXITSTATUS((int)status_word)); #else RETURN_FALSE; #endif @@ -851,7 +852,7 @@ PHP_FUNCTION(pcntl_wtermsig) return; } - RETURN_LONG(WTERMSIG(status_word)); + RETURN_LONG(WTERMSIG((int)status_word)); #else RETURN_FALSE; #endif @@ -869,7 +870,7 @@ PHP_FUNCTION(pcntl_wstopsig) return; } - RETURN_LONG(WSTOPSIG(status_word)); + RETURN_LONG(WSTOPSIG((int)status_word)); #else RETURN_FALSE; #endif