From b4201810b951afb095fdd7c30d2f83856f4e87b6 Mon Sep 17 00:00:00 2001 From: Denis Brumann Date: Thu, 29 Dec 2016 19:41:55 +0100 Subject: [PATCH] Conditionally add options to unserialize in PHP 7.0+. --- .../Bridge/Twig/DataCollector/TwigDataCollector.php | 6 +++++- .../DependencyInjection/Config/AutowireServiceResource.php | 6 +++++- src/Symfony/Component/Form/FormError.php | 6 +++++- .../Component/HttpKernel/Config/EnvParametersResource.php | 6 +++++- .../Component/HttpKernel/Debug/FileLinkFormatter.php | 6 +++++- src/Symfony/Component/HttpKernel/Kernel.php | 6 +++++- src/Symfony/Component/Routing/CompiledRoute.php | 7 ++++++- src/Symfony/Component/Routing/Route.php | 6 +++++- 8 files changed, 41 insertions(+), 8 deletions(-) diff --git a/src/Symfony/Bridge/Twig/DataCollector/TwigDataCollector.php b/src/Symfony/Bridge/Twig/DataCollector/TwigDataCollector.php index 90b21d0495ff7..f075709654c95 100644 --- a/src/Symfony/Bridge/Twig/DataCollector/TwigDataCollector.php +++ b/src/Symfony/Bridge/Twig/DataCollector/TwigDataCollector.php @@ -93,7 +93,11 @@ public function getHtmlCallGraph() public function getProfile() { if (null === $this->profile) { - $this->profile = unserialize($this->data['profile']); + if (PHP_VERSION_ID >= 70000) { + $this->profile = unserialize($this->data['profile'], array('allowed_classes' => array('Twig_Profiler_Profile'))); + } else { + $this->profile = unserialize($this->data['profile']); + } } return $this->profile; diff --git a/src/Symfony/Component/DependencyInjection/Config/AutowireServiceResource.php b/src/Symfony/Component/DependencyInjection/Config/AutowireServiceResource.php index 36449d8d3042a..a1549eeb977fa 100644 --- a/src/Symfony/Component/DependencyInjection/Config/AutowireServiceResource.php +++ b/src/Symfony/Component/DependencyInjection/Config/AutowireServiceResource.php @@ -60,7 +60,11 @@ public function serialize() public function unserialize($serialized) { - list($this->class, $this->filePath, $this->autowiringMetadata) = unserialize($serialized); + if (PHP_VERSION_ID >= 70000) { + list($this->class, $this->filePath, $this->autowiringMetadata) = unserialize($serialized, array('allowed_classes' => false)); + } else { + list($this->class, $this->filePath, $this->autowiringMetadata) = unserialize($serialized); + } } /** diff --git a/src/Symfony/Component/Form/FormError.php b/src/Symfony/Component/Form/FormError.php index 6b3938868ddde..e4e50a873c942 100644 --- a/src/Symfony/Component/Form/FormError.php +++ b/src/Symfony/Component/Form/FormError.php @@ -185,6 +185,10 @@ public function serialize() */ public function unserialize($serialized) { - list($this->message, $this->messageTemplate, $this->messageParameters, $this->messagePluralization, $this->cause) = unserialize($serialized); + if (PHP_VERSION_ID >= 70000) { + list($this->message, $this->messageTemplate, $this->messageParameters, $this->messagePluralization, $this->cause) = unserialize($serialized, array('allowed_classes' => false)); + } else { + list($this->message, $this->messageTemplate, $this->messageParameters, $this->messagePluralization, $this->cause) = unserialize($serialized); + } } } diff --git a/src/Symfony/Component/HttpKernel/Config/EnvParametersResource.php b/src/Symfony/Component/HttpKernel/Config/EnvParametersResource.php index bad199be94be0..fd53f0bcef3b3 100644 --- a/src/Symfony/Component/HttpKernel/Config/EnvParametersResource.php +++ b/src/Symfony/Component/HttpKernel/Config/EnvParametersResource.php @@ -72,7 +72,11 @@ public function serialize() public function unserialize($serialized) { - $unserialized = unserialize($serialized); + if (PHP_VERSION_ID >= 70000) { + $unserialized = unserialize($serialized, array('allowed_classes' => false)); + } else { + $unserialized = unserialize($serialized); + } $this->prefix = $unserialized['prefix']; $this->variables = $unserialized['variables']; diff --git a/src/Symfony/Component/HttpKernel/Debug/FileLinkFormatter.php b/src/Symfony/Component/HttpKernel/Debug/FileLinkFormatter.php index 03e3cf89549ba..9eefba210a41b 100644 --- a/src/Symfony/Component/HttpKernel/Debug/FileLinkFormatter.php +++ b/src/Symfony/Component/HttpKernel/Debug/FileLinkFormatter.php @@ -63,7 +63,11 @@ public function serialize() public function unserialize($serialized) { - $this->fileLinkFormat = unserialize($serialized); + if (PHP_VERSION_ID >= 70000) { + $this->fileLinkFormat = unserialize($serialized, array('allowed_classes' => false)); + } else { + $this->fileLinkFormat = unserialize($serialized); + } } private function getFileLinkFormat() diff --git a/src/Symfony/Component/HttpKernel/Kernel.php b/src/Symfony/Component/HttpKernel/Kernel.php index b7b7d81b61980..75b09a144e215 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -734,7 +734,11 @@ public function serialize() public function unserialize($data) { - list($environment, $debug) = unserialize($data); + if (PHP_VERSION_ID >= 70000) { + list($environment, $debug) = unserialize($data, array('allowed_classes' => false)); + } else { + list($environment, $debug) = unserialize($data); + } $this->__construct($environment, $debug); } diff --git a/src/Symfony/Component/Routing/CompiledRoute.php b/src/Symfony/Component/Routing/CompiledRoute.php index 3eca9ecd8b010..a3cbdd056f37c 100644 --- a/src/Symfony/Component/Routing/CompiledRoute.php +++ b/src/Symfony/Component/Routing/CompiledRoute.php @@ -73,7 +73,12 @@ public function serialize() */ public function unserialize($serialized) { - $data = unserialize($serialized); + if (PHP_VERSION_ID >= 70000) { + $data = unserialize($serialized, array('allowed_classes' => false)); + } else { + $data = unserialize($serialized); + } + $this->variables = $data['vars']; $this->staticPrefix = $data['path_prefix']; $this->regex = $data['path_regex']; diff --git a/src/Symfony/Component/Routing/Route.php b/src/Symfony/Component/Routing/Route.php index ee3b5a5909bc7..ef4bc0fab1d43 100644 --- a/src/Symfony/Component/Routing/Route.php +++ b/src/Symfony/Component/Routing/Route.php @@ -116,7 +116,11 @@ public function serialize() */ public function unserialize($serialized) { - $data = unserialize($serialized); + if (PHP_VERSION_ID >= 70000) { + $data = unserialize($serialized, array('allowed_classes' => array(CompiledRoute::class))); + } else { + $data = unserialize($serialized); + } $this->path = $data['path']; $this->host = $data['host']; $this->defaults = $data['defaults'];