diff options
author | Boris Mittelberg <bmbm@google.com> | 2022-11-17 17:05:54 -0800 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-12-05 23:12:56 +0000 |
commit | 1b5fd24c11f6e40ba9270ed90dec2ba976a26de7 (patch) | |
tree | efb45f084062726ec2ca47b8807c523481a84461 /common/usbc/usb_tc_drp_acc_trysrc_sm.c | |
parent | bc3e5a45eb3a40855c0b3b980af01624eef0dfe7 (diff) | |
download | chrome-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.c | 3 |
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])); |