lib/extensions/ras: fix bug of binary search
In ras_interrupt_handler(), binary search end was set to the size of the ras_interrupt_mappings array, which would cause out of bound access when the input intr_raw is larger than all the elements in ras_interrupt_mappings. Signed-off-by: Heyi Guo <guoheyi@linux.alibaba.com> Change-Id: Id2cff73177134b09d4d8beb596c3429b98ec5066
This commit is contained in:
parent
986f8330ec
commit
0b1838a970
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2018-2021, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2020, NVIDIA Corporation. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
|
@ -139,7 +139,7 @@ static int ras_interrupt_handler(uint32_t intr_raw, uint32_t flags,
|
|||
assert(ras_interrupt_mappings.num_intrs > 0UL);
|
||||
|
||||
start = 0;
|
||||
end = (int) ras_interrupt_mappings.num_intrs;
|
||||
end = (int)ras_interrupt_mappings.num_intrs - 1;
|
||||
while (start <= end) {
|
||||
mid = ((end + start) / 2);
|
||||
if (intr_raw == ras_inrs[mid].intr_number) {
|
||||
|
|
Loading…
Reference in New Issue