php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #23509 exit retcode ignored when called from a register_shutdown_function
Submitted: 2003-05-06 11:58 UTC Modified: 2003-08-01 07:29 UTC
From: ldemailly at qualys dot com Assigned: iliaa (profile)
Status: Closed Package: CGI/CLI related
PHP Version: 4.3.2RC3-dev OS: Linux 2.4.20
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: ldemailly at qualys dot com
New email:
PHP Version: OS:

 

 [2003-05-06 11:58 UTC] ldemailly at qualys dot com
exit retcode ignored when called from a register_shutdown_function :

Trying to install an exit handler that will check
some conditions to determine the proper exit code
for a PHP shell (CLI) script (unit test, used in
Makefile, should fail if someone in the tested code
somewhere call die("..."))
I found that the exit(status) call within the handler
ignores the status argument and sticks with the original
one; this obviously makes the ability to register a shutdown
function useless for my purpose (any idea on a workaround ?)

repro script:
<?php


function exit_override() {
  echo "should exit with 1\n";
  exit(1);
}

register_shutdown_function("exit_override");

die("calling die...");

?>

testing:
$ php ExitBug.php ; echo $?
calling die...should exit with 1
0
***
zero instead of the expected 1

I guess, if   die("string") would actually imply exit(1) I wouldn't need this workaround, but either way it seems that the last exit call should override the shell return status code.

Thanks
Laurent

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2003-08-01 07:29 UTC] iliaa@php.net
This bug has been fixed in CVS.

In case this was a PHP problem, snapshots of the sources are packaged
every three hours; this change will be in the next snapshot. You can
grab the snapshot at http://snaps.php.net/.
 
In case this was a documentation problem, the fix will show up soon at
http://www.php.net/manual/.

In case this was a PHP.net website problem, the change will show
up on the PHP.net site and on the mirror sites in short time.
 
Thank you for the report, and for helping us make PHP better.


 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Apr 27 12:01:29 2024 UTC