clean output buffer for Throwable instead of just Exception (#798)

* clean output buffer for Throwable instead of just Exception
This commit is contained in:
Simon Wisselink
2022-09-22 14:56:33 +02:00
committed by GitHub
parent 1a69f4e4c7
commit e1fb2ad688
2 changed files with 12 additions and 1 deletions

View File

@@ -6,6 +6,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [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
### Security

View File

@@ -246,7 +246,15 @@ abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data
error_reporting($_smarty_old_error_level);
}
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) {
ob_end_clean();
}