Commit 0b1838a9 authored by Heyi Guo's avatar Heyi Guo
Browse files

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: default avatarHeyi Guo <guoheyi@linux.alibaba.com>
Change-Id: Id2cff73177134b09d4d8beb596c3429b98ec5066
parent 986f8330
/* /*
* 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. * Copyright (c) 2020, NVIDIA Corporation. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
...@@ -139,7 +139,7 @@ static int ras_interrupt_handler(uint32_t intr_raw, uint32_t flags, ...@@ -139,7 +139,7 @@ static int ras_interrupt_handler(uint32_t intr_raw, uint32_t flags,
assert(ras_interrupt_mappings.num_intrs > 0UL); assert(ras_interrupt_mappings.num_intrs > 0UL);
start = 0; start = 0;
end = (int) ras_interrupt_mappings.num_intrs; end = (int)ras_interrupt_mappings.num_intrs - 1;
while (start <= end) { while (start <= end) {
mid = ((end + start) / 2); mid = ((end + start) / 2);
if (intr_raw == ras_inrs[mid].intr_number) { if (intr_raw == ras_inrs[mid].intr_number) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment