Prevent bailout during imap shutdown error reporting

This is a non-intrusive, minimal fix for bug #81316, which prevents
a bailout during imap RSHUTDOWN and prevents the basic shutdown
handler from being skipped.

I wasn't able to make the issue reproduce in a small test.
This commit is contained in:
Nikita Popov 2021-08-17 10:33:39 +02:00
parent d1e956ff31
commit bcc2f0705d

View file

@ -1099,7 +1099,9 @@ PHP_RSHUTDOWN_FUNCTION(imap)
if (EG(error_reporting) & E_NOTICE) {
ecur = IMAPG(imap_errorstack);
while (ecur != NIL) {
php_error_docref(NULL, E_NOTICE, "%s (errflg=%ld)", ecur->LTEXT, ecur->errflg);
zend_try {
php_error_docref(NULL, E_NOTICE, "%s (errflg=%ld)", ecur->LTEXT, ecur->errflg);
} zend_end_try();
ecur = ecur->next;
}
}
@ -1112,7 +1114,9 @@ PHP_RSHUTDOWN_FUNCTION(imap)
if (EG(error_reporting) & E_NOTICE) {
acur = IMAPG(imap_alertstack);
while (acur != NIL) {
php_error_docref(NULL, E_NOTICE, "%s", acur->LTEXT);
zend_try {
php_error_docref(NULL, E_NOTICE, "%s", acur->LTEXT);
} zend_end_try();
acur = acur->next;
}
}