User may specify wrong type for the job id. Let's check it.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
---
blockjob.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/blockjob.c b/blockjob.c
index 8cfbb15543..788cb1e07d 100644
--- a/blockjob.c
+++ b/blockjob.c
@@ -319,6 +319,12 @@ void block_job_change_locked(BlockJob *job, JobChangeOptions *opts,
GLOBAL_STATE_CODE();
+ if (job_type(&job->job) != opts->type) {
+ error_setg(errp, "Job '%s' is '%s' job, not '%s'", job->job.id,
+ job_type_str(&job->job), JobType_str(opts->type));
+ return;
+ }
+
if (job_apply_verb_locked(&job->job, JOB_VERB_CHANGE, errp)) {
return;
}
--
2.34.1