From 86c8a8033d73536c969c4c7b047431f620bf90cd Mon Sep 17 00:00:00 2001 From: Prateek Patel Date: Mon, 18 Apr 2022 05:56:40 +0000 Subject: [PATCH] core: include: Fix cert_c defect Signed index may evaluate to an address that could be at negative offset of an array. Use unsigned indexing. CID 479265 CID 452753 Bug 3512545 Change-Id: Iaae22838305aeeafb3ebaecc497fe1556749c5c2 Signed-off-by: Prateek Patel Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2701054 Reviewed-by: svcacv Reviewed-by: svc-mobile-coverity Reviewed-by: svc-mobile-cert Reviewed-by: svc_kernel_abi Reviewed-by: Chris Dragan Reviewed-by: Sachin Nikam GVS: Gerrit_Virtual_Submit --- drivers/misc/mods/mods_tegradc.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/misc/mods/mods_tegradc.c b/drivers/misc/mods/mods_tegradc.c index 57d0e06c..5223c81e 100644 --- a/drivers/misc/mods/mods_tegradc.c +++ b/drivers/misc/mods/mods_tegradc.c @@ -88,7 +88,15 @@ int esc_mods_tegra_dc_config_possible(struct mods_client *client, } for (i = 0; i < args->win_num; i++) { - int idx = args->windows[i].index; + unsigned int idx; + + if (args->windows[i].index < 0) { + cl_debug(DEBUG_TEGRADC, + "invalid index %d for win %d\n", + i, args->windows[i].index); + return -EINVAL; + } + idx = (unsigned int)args->windows[i].index; if (args->windows[i].flags & MODS_TEGRA_DC_WINDOW_FLAG_ENABLED) {