This is an automated email from the ASF dual-hosted git repository.
xiaoxiang781216 pushed a commit to branch releases/13.0
in repository https://gitbox.apache.org/repos/asf/nuttx.git
The following commit(s) were added to refs/heads/releases/13.0 by this push:
new 9888b7cd3b1 arch/arm: xmc4: fix VADC index bounds checks
9888b7cd3b1 is described below
commit 9888b7cd3b163b985511ba5f03455e2615f67f8d
Author: aineoae86-sys <[email protected]>
AuthorDate: Mon Jul 6 02:37:51 2026 +0800
arch/arm: xmc4: fix VADC index bounds checks
The XMC_VADC_* constants describe counts, so the valid register, group, and
channel indexes are below those values. The current checks allow the count
itself through and then use it to index VADC group, channel, and result
registers.
Reject those boundary values before the register array access.
Generated-by: OpenAI Codex
Signed-off-by: aineoae86-sys <[email protected]>
---
arch/arm/src/xmc4/xmc4_vadc.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm/src/xmc4/xmc4_vadc.c b/arch/arm/src/xmc4/xmc4_vadc.c
index fcdd58dec14..af6a04dbcf0 100644
--- a/arch/arm/src/xmc4/xmc4_vadc.c
+++ b/arch/arm/src/xmc4/xmc4_vadc.c
@@ -434,7 +434,7 @@ void xmc4_vadc_global_background_initialize(const
vadc_background_config_t *conf
int xmc4_vadc_group_channel_initialize(vadc_group_t *const group_ptr, const
uint32_t ch_num,
const vadc_channel_config_t *config)
{
- if (!xmc_vadc_check_group_ptr(group_ptr) || (ch_num >
XMC_VADC_NUM_CHANNELS_PER_GROUP))
+ if (!xmc_vadc_check_group_ptr(group_ptr) || (ch_num >=
XMC_VADC_NUM_CHANNELS_PER_GROUP))
{
return -EINVAL;
}
@@ -498,7 +498,7 @@ int xmc4_vadc_group_channel_initialize(vadc_group_t *const
group_ptr, const uint
int xmc4_vadc_global_background_add_channel_to_sequence(const uint32_t grp_num,
const uint32_t ch_num)
{
- if ((grp_num > XMC_VADC_MAXIMUM_NUM_GROUPS) || (ch_num >
XMC_VADC_NUM_CHANNELS_PER_GROUP))
+ if ((grp_num >= XMC_VADC_MAXIMUM_NUM_GROUPS) || (ch_num >=
XMC_VADC_NUM_CHANNELS_PER_GROUP))
{
return -EINVAL;
}
@@ -556,7 +556,7 @@ int xmc4_vadc_group_get_result(vadc_group_t *const
group_ptr,
const uint32_t res_reg,
uint16_t *result_ptr)
{
- if (!xmc_vadc_check_group_ptr(group_ptr) || (res_reg >
XMC_VADC_NUM_RESULT_REGISTERS))
+ if (!xmc_vadc_check_group_ptr(group_ptr) || (res_reg >=
XMC_VADC_NUM_RESULT_REGISTERS))
{
return -EINVAL;
}
@@ -583,7 +583,7 @@ int xmc4_vadc_group_get_channel_result(vadc_group_t *const
group_ptr,
const uint32_t ch_num,
uint16_t *result_ptr)
{
- if (!xmc_vadc_check_group_ptr(group_ptr) || (ch_num >
XMC_VADC_NUM_CHANNELS_PER_GROUP))
+ if (!xmc_vadc_check_group_ptr(group_ptr) || (ch_num >=
XMC_VADC_NUM_CHANNELS_PER_GROUP))
{
return -EINVAL;
}