Check background job type

It is assumed that a job class loaded from the jobs table is an IJob,
but due to programming error the job might be of another type. Then the
setters will most likely fail.

This patch adds an interface type check so only correct jobs are used,
anything else is ignored.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
This commit is contained in:
Christoph Wurst 2022-05-31 08:31:38 +02:00 committed by John Molakvoæ (Rebase PR Action)
parent df89e7fd39
commit b17c4a6072

View file

@ -311,6 +311,10 @@ class JobList implements IJobList {
}
}
if (!($job instanceof IJob)) {
// This most likely means an invalid job was enqueued. We can ignore it.
return null;
}
$job->setId((int) $row['id']);
$job->setLastRun((int) $row['last_run']);
$job->setArgument(json_decode($row['argument'], true));