summaryrefslogtreecommitdiff
path: root/common/usbc/usb_tc_drp_acc_trysrc_sm.c
diff options
context:
space:
mode:
authorBoris Mittelberg <bmbm@google.com>2022-11-17 17:05:54 -0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-12-05 23:12:56 +0000
commit1b5fd24c11f6e40ba9270ed90dec2ba976a26de7 (patch)
treeefb45f084062726ec2ca47b8807c523481a84461 /common/usbc/usb_tc_drp_acc_trysrc_sm.c
parentbc3e5a45eb3a40855c0b3b980af01624eef0dfe7 (diff)
downloadchrome-ec-1b5fd24c11f6e40ba9270ed90dec2ba976a26de7.tar.gz
usb_tc_drp_acc_trysrc_sm: add bound check
Bound dynamic pd port number with CONFIG_USB_PD_PORT_MAX_COUNT to prevent memory corruption. BUG=b:64477774 BRANCH=none TEST=make -j buildall LOW_COVERAGE_REASON=No unit test infrastructure for this module Signed-off-by: Boris Mittelberg <bmbm@google.com> Change-Id: Ia9635c215fa5006ddf2fee2cfa2bd9da8f8c04fb Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4035432 Reviewed-by: caveh jalali <caveh@chromium.org>
Diffstat (limited to 'common/usbc/usb_tc_drp_acc_trysrc_sm.c')
-rw-r--r--common/usbc/usb_tc_drp_acc_trysrc_sm.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/common/usbc/usb_tc_drp_acc_trysrc_sm.c b/common/usbc/usb_tc_drp_acc_trysrc_sm.c
index 168490d67e..dc94dc12fc 100644
--- a/common/usbc/usb_tc_drp_acc_trysrc_sm.c
+++ b/common/usbc/usb_tc_drp_acc_trysrc_sm.c
@@ -1561,6 +1561,9 @@ void tc_state_init(int port)
{
enum usb_tc_state first_state;
+ if (port >= CONFIG_USB_PD_PORT_MAX_COUNT)
+ return;
+
/* For test builds, replicate static initialization */
if (IS_ENABLED(TEST_BUILD)) {
memset(&tc[port], 0, sizeof(tc[port]));