Commit 55ba70c4 authored by Dan Carpenter's avatar Dan Carpenter Committed by Dave Airlie

drm/radeon: use after free in radeon_vm_bo_add()

"bo_va" is dereferenced in the error message.
Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent b5215ef1
...@@ -494,10 +494,10 @@ int radeon_vm_bo_add(struct radeon_device *rdev, ...@@ -494,10 +494,10 @@ int radeon_vm_bo_add(struct radeon_device *rdev,
} }
if (bo_va->soffset >= tmp->soffset && bo_va->soffset < tmp->eoffset) { if (bo_va->soffset >= tmp->soffset && bo_va->soffset < tmp->eoffset) {
/* bo and tmp overlap, invalid offset */ /* bo and tmp overlap, invalid offset */
kfree(bo_va);
dev_err(rdev->dev, "bo %p va 0x%08X conflict with (bo %p 0x%08X 0x%08X)\n", dev_err(rdev->dev, "bo %p va 0x%08X conflict with (bo %p 0x%08X 0x%08X)\n",
bo, (unsigned)bo_va->soffset, tmp->bo, bo, (unsigned)bo_va->soffset, tmp->bo,
(unsigned)tmp->soffset, (unsigned)tmp->eoffset); (unsigned)tmp->soffset, (unsigned)tmp->eoffset);
kfree(bo_va);
mutex_unlock(&vm->mutex); mutex_unlock(&vm->mutex);
return -EINVAL; return -EINVAL;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment