aboutsummaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorDan Carpenter <[email protected]>2024-11-30 13:06:41 +0300
committerLeon Romanovsky <[email protected]>2024-12-04 09:19:39 -0500
commitd0257e089d1bbd35c69b6c97ff73e3690ab149a9 (patch)
tree6ffcd2fe1bc7f3d686644286a95c6330e626a7ac /include/linux
parenteb867d797d294a00a092b5027d08439da68940b2 (diff)
RDMA/uverbs: Prevent integer overflow issue
In the expression "cmd.wqe_size * cmd.wr_count", both variables are u32 values that come from the user so the multiplication can lead to integer wrapping. Then we pass the result to uverbs_request_next_ptr() which also could potentially wrap. The "cmd.sge_count * sizeof(struct ib_uverbs_sge)" multiplication can also overflow on 32bit systems although it's fine on 64bit systems. This patch does two things. First, I've re-arranged the condition in uverbs_request_next_ptr() so that the use controlled variable "len" is on one side of the comparison by itself without any math. Then I've modified all the callers to use size_mul() for the multiplications. Fixes: 67cdb40ca444 ("[IB] uverbs: Implement more commands") Cc: [email protected] Signed-off-by: Dan Carpenter <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Leon Romanovsky <[email protected]>
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions