From 80c3e3003f95f839dc5c5cc74db1ec74b608924d Mon Sep 17 00:00:00 2001 From: Surbhi Singh Date: Mon, 4 Nov 2024 03:36:56 +0000 Subject: [PATCH] video: tegra: nvmap: Fix INT30-C overflow defects Adding check for overflow in nvmap_heap.c when two unsigned integers are added and return error in case of overflow condition JIRA: TMM-5724 Bug 4479044 Change-Id: I4da3f31a508de8e4d6fab033e5a149de6b423ead Signed-off-by: Surbhi Singh Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3241765 Reviewed-by: Ketan Patil Reviewed-by: Sachin Nikam GVS: buildbot_gerritrpt --- drivers/video/tegra/nvmap/nvmap_heap.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/video/tegra/nvmap/nvmap_heap.c b/drivers/video/tegra/nvmap/nvmap_heap.c index f7d8c078..42e5308b 100644 --- a/drivers/video/tegra/nvmap/nvmap_heap.c +++ b/drivers/video/tegra/nvmap/nvmap_heap.c @@ -1052,6 +1052,7 @@ void nvmap_heap_destroy(struct nvmap_heap *heap) int nvmap_heap_init(void) { ulong start_time = sched_clock(); + ulong sum; heap_block_cache = KMEM_CACHE(list_block, 0); if (!heap_block_cache) { @@ -1059,7 +1060,10 @@ int nvmap_heap_init(void) return -ENOMEM; } pr_info("%s: created heap block cache\n", __func__); - nvmap_init_time += sched_clock() - start_time; + if (check_add_overflow((ulong)sched_clock() - start_time, nvmap_init_time, &sum)) + return -EOVERFLOW; + + nvmap_init_time = sum; return 0; }