Skip to content

Commit

Permalink
Prevent destructors with side-effects from being unserialized
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolas-grekas committed Apr 2, 2019
1 parent 3a861ac commit 4fb9752
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 0 deletions.
10 changes: 10 additions & 0 deletions src/Symfony/Bridge/PhpUnit/Legacy/SymfonyTestsListenerTrait.php
Expand Up @@ -83,6 +83,16 @@ public function __construct(array $mockedNamespaces = array())
}
}

public function __sleep()
{
throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
}

public function __wakeup()
{
throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
}

public function __destruct()
{
if (0 < $this->state) {
Expand Down
Expand Up @@ -64,6 +64,16 @@ public function getLogDir()
return $this->cacheDir;
}

public function __sleep()
{
throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
}

public function __wakeup()
{
throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
}

public function __destruct()
{
$fs = new Filesystem();
Expand Down
10 changes: 10 additions & 0 deletions src/Symfony/Component/Cache/Traits/FilesystemCommonTrait.php
Expand Up @@ -116,6 +116,16 @@ public static function throwError($type, $message, $file, $line)
throw new \ErrorException($message, 0, $type, $file, $line);
}

public function __sleep()
{
throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
}

public function __wakeup()
{
throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
}

public function __destruct()
{
if (method_exists(parent::class, '__destruct')) {
Expand Down

0 comments on commit 4fb9752

Please sign in to comment.