diff options
author | Patrick Georgi <pgeorgi@google.com> | 2019-09-09 22:58:22 +0200 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-09-10 12:19:51 +0000 |
commit | 633e195022d29460bdcccd0b1b5562ce6dbc2e89 (patch) | |
tree | 4b4100743d4cd9b309238f1a9b4865d0cae90e86 | |
parent | 4523df8fee2c8e045b47c5c73fe6f1760516a555 (diff) | |
download | chrome-ec-633e195022d29460bdcccd0b1b5562ce6dbc2e89.tar.gz |
chip/stm32/dma.c: don't overrun array size
On smaller models there may not be 7 channels.
Found by Coverity Scan #157523
BUG=none
BRANCH=none
TEST=none
Change-Id: I8b494c6714dfd355875c5b6069b65519e91efcc9
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1793584
Tested-by: Patrick Georgi <pgeorgi@chromium.org>
Commit-Queue: Patrick Georgi <pgeorgi@chromium.org>
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
-rw-r--r-- | chip/stm32/dma.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/chip/stm32/dma.c b/chip/stm32/dma.c index b09213d039..5fb7c4c9a6 100644 --- a/chip/stm32/dma.c +++ b/chip/stm32/dma.c @@ -333,8 +333,9 @@ DECLARE_IRQ(STM32_IRQ_DMA_CHANNEL_2_3, dma_event_interrupt_channel_2_3, 1); void dma_event_interrupt_channel_4_7(void) { int i; + const unsigned int max_chan = MIN(STM32_DMAC_CH7, STM32_DMAC_COUNT); - for (i = STM32_DMAC_CH4; i <= STM32_DMAC_CH7; i++) { + for (i = STM32_DMAC_CH4; i <= max_chan; i++) { if (STM32_DMA1_REGS->isr & STM32_DMA_ISR_TCIF(i)) { dma_clear_isr(i); if (dma_irq[i].cb != NULL) |