Browse Source

Explicitely only accept closures from our dependencies in ClosureJob

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Côme Chilliet 2 years ago
parent
commit
d8c419c304
1 changed files with 4 additions and 1 deletions
  1. 4 1
      lib/private/Command/ClosureJob.php

+ 4 - 1
lib/private/Command/ClosureJob.php

@@ -23,10 +23,13 @@
 namespace OC\Command;
 
 use OC\BackgroundJob\QueuedJob;
+use Laravel\SerializableClosure\SerializableClosure as LaravelClosure;
+use Opis\Closure\SerializableClosure as OpisClosure;
 
 class ClosureJob extends QueuedJob {
 	protected function run($serializedCallable) {
-		$callable = unserialize($serializedCallable)->getClosure();
+		$callable = unserialize($serializedCallable, [LaravelClosure::class, OpisClosure::class]);
+		$callable = $callable->getClosure();
 		if (is_callable($callable)) {
 			$callable();
 		} else {