diff options
author | Dan Carpenter <dan.carpenter@linaro.org> | 2024-11-30 13:06:41 +0300 |
---|---|---|
committer | Leon Romanovsky <leon@kernel.org> | 2024-12-04 09:19:39 -0500 |
commit | d0257e089d1bbd35c69b6c97ff73e3690ab149a9 (patch) | |
tree | 6ffcd2fe1bc7f3d686644286a95c6330e626a7ac /tools/perf/scripts/python | |
parent | eb867d797d294a00a092b5027d08439da68940b2 (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: stable@vger.kernel.org
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Link: https://patch.msgid.link/b8765ab3-c2da-4611-aae0-ddd6ba173d23@stanley.mountain
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions