diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2019-02-26 15:32:18 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-06-05 14:25:07 +0200 |
commit | a31f46421d7bf6f55dd9ac5876b8e2eacf7e0708 (patch) | |
tree | 24ffd7c5ae5e321c3994048fdd0fd9f68ae7457c /ext/imap/php_imap.c | |
parent | 528aa7932a839fc6319979c34aa372805d8dc41c (diff) | |
download | php-git-a31f46421d7bf6f55dd9ac5876b8e2eacf7e0708.tar.gz |
Allow exceptions in __toString()
RFC: https://wiki.php.net/rfc/tostring_exceptions
And convert some object to string conversion related recoverable
fatal errors into Error exceptions.
Improve exception safety of internal code performing string
conversions.
Diffstat (limited to 'ext/imap/php_imap.c')
-rw-r--r-- | ext/imap/php_imap.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c index 3cee4e023e..b5f12f6eee 100644 --- a/ext/imap/php_imap.c +++ b/ext/imap/php_imap.c @@ -2060,7 +2060,9 @@ PHP_FUNCTION(imap_delete) RETURN_FALSE; } - convert_to_string_ex(sequence); + if (!try_convert_to_string(sequence)) { + return; + } mail_setflag_full(imap_le_struct->imap_stream, Z_STRVAL_P(sequence), "\\DELETED", (argc == 3 ? flags : NIL)); RETVAL_TRUE; @@ -2084,7 +2086,9 @@ PHP_FUNCTION(imap_undelete) RETURN_FALSE; } - convert_to_string_ex(sequence); + if (!try_convert_to_string(sequence)) { + return; + } mail_clearflag_full(imap_le_struct->imap_stream, Z_STRVAL_P(sequence), "\\DELETED", (argc == 3 ? flags : NIL)); RETVAL_TRUE; @@ -2503,7 +2507,9 @@ PHP_FUNCTION(imap_savebody) break; default: - convert_to_string_ex(out); + if (!try_convert_to_string(out)) { + return; + } writer = php_stream_open_wrapper(Z_STRVAL_P(out), "wb", REPORT_ERRORS, NULL); break; } |