mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-04 02:02:28 +09:00
tee: shm: fix use-after-free via temporarily dropped reference
commitbb765d1c33upstream. Bump the file's refcount before moving the reference into the fd table, not afterwards. The old code could drop the file's refcount to zero for a short moment before calling get_file() via get_dma_buf(). This code can only be triggered on ARM systems that use Linaro's OP-TEE. Fixes:967c9cca2c("tee: generic TEE subsystem") Signed-off-by: Jann Horn <jannh@google.com> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
9a19a93bdd
commit
bca7faea54
@@ -203,9 +203,10 @@ int tee_shm_get_fd(struct tee_shm *shm)
|
||||
if ((shm->flags & req_flags) != req_flags)
|
||||
return -EINVAL;
|
||||
|
||||
get_dma_buf(shm->dmabuf);
|
||||
fd = dma_buf_fd(shm->dmabuf, O_CLOEXEC);
|
||||
if (fd >= 0)
|
||||
get_dma_buf(shm->dmabuf);
|
||||
if (fd < 0)
|
||||
dma_buf_put(shm->dmabuf);
|
||||
return fd;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user