[Pkg-owncloud-commits] [owncloud] 73/273: Check if classes/method exists before trying to call them in background jobs

David Prévot taffit at moszumanska.debian.org
Fri Jul 4 03:12:59 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository owncloud.

commit 437094bbfc4230ed4b8b8cc797738ddd4ef7f1aa
Author: Robin Appelman <icewind at owncloud.com>
Date:   Thu Jun 26 22:39:40 2014 +0200

    Check if classes/method exists before trying to call them in background jobs
---
 lib/private/backgroundjob/joblist.php           | 4 ++++
 lib/private/backgroundjob/legacy/queuedjob.php  | 4 +++-
 lib/private/backgroundjob/legacy/regularjob.php | 4 +++-
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/lib/private/backgroundjob/joblist.php b/lib/private/backgroundjob/joblist.php
index 6641097..09bba53 100644
--- a/lib/private/backgroundjob/joblist.php
+++ b/lib/private/backgroundjob/joblist.php
@@ -152,6 +152,10 @@ class JobList implements IJobList {
 		if ($class === 'OC_Cache_FileGlobalGC') {
 			$class = '\OC\Cache\FileGlobalGC';
 		}
+		if (class_exists($class)) {
+			// job from disabled app or old version of an app, no need to do anything
+			return null;
+		}
 		$job = new $class();
 		$job->setId($row['id']);
 		$job->setLastRun($row['last_run']);
diff --git a/lib/private/backgroundjob/legacy/queuedjob.php b/lib/private/backgroundjob/legacy/queuedjob.php
index 2bc0011..c5705ab 100644
--- a/lib/private/backgroundjob/legacy/queuedjob.php
+++ b/lib/private/backgroundjob/legacy/queuedjob.php
@@ -13,6 +13,8 @@ class QueuedJob extends \OC\BackgroundJob\QueuedJob {
 		$class = $argument['klass'];
 		$method = $argument['method'];
 		$parameters = $argument['parameters'];
-		call_user_func(array($class, $method), $parameters);
+		if (is_callable(array($class, $method))) {
+			call_user_func(array($class, $method), $parameters);
+		}
 	}
 }
diff --git a/lib/private/backgroundjob/legacy/regularjob.php b/lib/private/backgroundjob/legacy/regularjob.php
index d4cfa34..eb85a30 100644
--- a/lib/private/backgroundjob/legacy/regularjob.php
+++ b/lib/private/backgroundjob/legacy/regularjob.php
@@ -10,6 +10,8 @@ namespace OC\BackgroundJob\Legacy;
 
 class RegularJob extends \OC\BackgroundJob\Job {
 	public function run($argument) {
-		call_user_func($argument);
+		if (is_callable($argument)) {
+			call_user_func($argument);
+		}
 	}
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list