mirror of
https://github.com/smarty-php/smarty.git
synced 2025-08-03 09:54:27 +02:00
clean output buffer for Throwable instead of just Exception (#798)
* clean output buffer for Throwable instead of just Exception
This commit is contained in:
@@ -6,6 +6,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Output buffer is now cleaned for internal PHP errors as well, not just for Exceptions [#514](https://github.com/smarty-php/smarty/issues/514)
|
||||||
|
|
||||||
## [3.1.47] - 2022-09-14
|
## [3.1.47] - 2022-09-14
|
||||||
|
|
||||||
### Security
|
### Security
|
||||||
|
@@ -246,7 +246,15 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data
|
|||||||
error_reporting($_smarty_old_error_level);
|
error_reporting($_smarty_old_error_level);
|
||||||
}
|
}
|
||||||
return $result;
|
return $result;
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) { // PHP 5.x specific
|
||||||
|
while (ob_get_level() > $level) {
|
||||||
|
ob_end_clean();
|
||||||
|
}
|
||||||
|
if (isset($_smarty_old_error_level)) {
|
||||||
|
error_reporting($_smarty_old_error_level);
|
||||||
|
}
|
||||||
|
throw $e;
|
||||||
|
} catch (Throwable $e) { // For PHP ^7.0 this can also catch Errors
|
||||||
while (ob_get_level() > $level) {
|
while (ob_get_level() > $level) {
|
||||||
ob_end_clean();
|
ob_end_clean();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user