]> git.baikalelectronics.ru Git - arm-tf.git/commit
fix(gicv3/multichip): fix overflow caused by left shift
authorVijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
Thu, 29 Sep 2022 10:03:50 +0000 (15:33 +0530)
committerVijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
Tue, 11 Oct 2022 15:47:47 +0000 (21:17 +0530)
commit6aea7624a01cc39c19d4237c4b108659270a61c5
tree6f29a48e31675efb419783ae73ef86797f846f30
parent402d2316c8a959dc011b5775970a6677edb20b17
fix(gicv3/multichip): fix overflow caused by left shift

When spi_id_max is 5119, the expression `(spi_id_max - 4096U + 1U >> 5)`
evaluates to 32 leading to undefined behavior when using it to left
shift 1. Fix this undefined behavior.

Reported-by coverity scan:
https://lists.trustedfirmware.org/archives/list/tf-a@lists.trustedfirmware.org/thread/RMB4U7COL6IONZWEGF2FWXOQ6FPDIT4U/

```
    large_shift: In expression 1 << (spi_id_max - 4096U + 1U >> 5), left
    shifting by more than 31 bits has undefined behavior. The shift
    amount, spi_id_max - 4096U + 1U >> 5, is as much as 32.
```

Signed-off-by: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
Change-Id: I5e77a78b81a6d0367875e7ea432a82b6ba0e587c
drivers/arm/gic/v3/gic600_multichip_private.h