mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 21:00:53 +07:00
tee: amdtee: out of bounds read in find_session()
The "index" is a user provided value from 0-USHRT_MAX. If it's over
TEE_NUM_SESSIONS (31) then it results in an out of bounds read when we
call test_bit(index, sess->sess_mask).
Fixes: 757cc3e9ff
("tee: add AMD-TEE driver")
Acked-by: Rijo Thomas <Rijo-john.Thomas@amd.com>
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
This commit is contained in:
parent
11a48a5a18
commit
36fa3e5008
@ -139,6 +139,9 @@ static struct amdtee_session *find_session(struct amdtee_context_data *ctxdata,
|
||||
u32 index = get_session_index(session);
|
||||
struct amdtee_session *sess;
|
||||
|
||||
if (index >= TEE_NUM_SESSIONS)
|
||||
return NULL;
|
||||
|
||||
list_for_each_entry(sess, &ctxdata->sess_list, list_node)
|
||||
if (ta_handle == sess->ta_handle &&
|
||||
test_bit(index, sess->sess_mask))
|
||||
|
Loading…
Reference in New Issue
Block a user