Bug #81431 [Com]: header_register_calback no longer allows die() to stop executing outputting
Edit report at https://bugs.php.net/bug.php?id=81431&edit=1
ID: 81431
Comment by: vashikaranprayog at gmail dot com
Reported by: raoul_vanmaaren at live dot nl
Summary: header_register_calback no longer allows die() to
stop executing outputting
Status: Verified
Type: Bug
Package: Output Control
PHP Version: 8.0.10
Block user comment: N
Private report: N
New Comment:
Do you want the best astrology services in California? In order to get the best astrology services,
you can consult our expert best astrologer in California. He is able to analyze the impact of the
planets in your life and provide the solutions or remedies according to that. He also provides the
best spiritual healer in California and Love psychic reader in California.
Vashikaran Specialist in Australia : https://www.vashikaranprayog.com/vashikaran-specialist-in-australia
Vashikaran Specialist in USA : https://www.vashikaranprayog.com/vashikaran-specialist-in-usa
Vashikaran Specialist in UK : www.vashikaranprayog.com/vashikaran-specialist-in-uk
Best Astrologer in UK : www.vashikaranprayog.com/best-astrologer-in-uk
Best Astrologer in Canada : https://www.vashikaranprayog.com/best-astrologer-in-canada
Astrology Services in Australia :
Best Astrologer in USA : www.vashikaranprayog.com/best-astrologer-in-usa
Best Astrologer in California : https://www.vashikaranprayog.com/best-astrologer-in-california/
Previous Comments:
------------------------------------------------------------------------
[2021-09-15 10:15:19] twosee@php.net
I think this is caused by the unwind_exit mechanism which was introduced in 8.0. I try to explain it
briefly: PHP8.x+ versions use the exception mechanism to implement exit, so the C code will continue
to execute. We can verify this behavior with this example: https://3v4l.org/43HMf.
I donât know where to check for exceptions that would be more appropriate, but the behavior
after applied the patch I provided is most in line with my intuition.
------------------------------------------------------------------------
[2021-09-15 10:03:53] twosee@php.net
The following patch has been added/updated:
Patch Name: bug81431.patch
Revision: 1631700233
URL: https://bugs.php.net/patch-display.php?bug=81431&patch=bug81431.patch&revision=1631700233
------------------------------------------------------------------------
[2021-09-12 19:14:35] raoul_vanmaaren at live dot nl
With output buffering on, for some reason, the expected result is produced. This is similar
behaviour as previous versions. With output buffering off, it seems to behave in a different manner
than the previous versions and prodduces the unexpected result.
https://3v4l.org/pv9jE
------------------------------------------------------------------------
[2021-09-11 11:58:49] sjon@php.net
the output buffering calls don't seem to be relevant, see https://3v4l.org/Jsq2U
------------------------------------------------------------------------
[2021-09-11 10:17:39] raoul_vanmaaren at live dot nl
Description:
------------
In PHP 8.0.0 - 8.0.10, a die statement within the header_register_callback function will not prevent
the trigger from being outputted. In previous versions this was the case.
This is with the standard settings.
I am not sure if this is caused by the performance upgrades and if this is intended or not. However,
I cannot find any documentation either.
Test script:
---------------
<?php
ob_start(); // make sure ob_level is set to 1
function callback()
{
echo "In php 8.0.0 - 8.0.10, a die statement does prevent the trigger from being outputted:
";
die();
}
header_register_callback("callback");
ob_end_clean();
echo "Trigger.";
echo "Execution died before this echo statement.";
Expected result:
----------------
In php 8.0.0 - 8.0.10, a die statement does prevent the trigger from being outputted:
Actual result:
--------------
In php 8.0.0 - 8.0.10, a die statement does prevent the trigger from being outputted: Trigger.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=81431&edit=1
Thread (7 messages)