mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
video: rockchip: rga3: fix use-after-free in rga_request_release_signal
Make sure the job is no longer in use before releasing the job. Signed-off-by: Yu Qiaowei <cerf.yu@rock-chips.com> Change-Id: I6a63c2b94fc9004bb460279e7a940ffa0f57c682
This commit is contained in:
@@ -832,8 +832,6 @@ int rga_request_release_signal(struct rga_scheduler_t *scheduler, struct rga_job
|
||||
rga_request_get(request);
|
||||
mutex_unlock(&request_manager->lock);
|
||||
|
||||
rga_job_cleanup(job);
|
||||
|
||||
spin_lock_irqsave(&request->lock, flags);
|
||||
|
||||
if (job->ret < 0) {
|
||||
@@ -848,6 +846,8 @@ int rga_request_release_signal(struct rga_scheduler_t *scheduler, struct rga_job
|
||||
|
||||
spin_unlock_irqrestore(&request->lock, flags);
|
||||
|
||||
rga_job_cleanup(job);
|
||||
|
||||
if ((failed_count + finished_count) >= request->task_count) {
|
||||
spin_lock_irqsave(&request->lock, flags);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user