From 9c2c4967ff00ad7359d0d72a94eb80ae9f20eb9a Mon Sep 17 00:00:00 2001 From: Jun Lai Date: Wed, 11 Nov 2026 14:18:21 +0800 Subject: [PATCH] audio: dax: fixes regarding the results of coverity check Out-of-bounds access (ARRAY_VS_SINGLETON): original calls may treat proc_flags as an array. Signed-off-by: Jun Lai --- src/audio/module_adapter/module/dolby/dax.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/audio/module_adapter/module/dolby/dax.c b/src/audio/module_adapter/module/dolby/dax.c index 2bd36687d4a2..79fbb61aaf8a 100644 --- a/src/audio/module_adapter/module/dolby/dax.c +++ b/src/audio/module_adapter/module/dolby/dax.c @@ -64,19 +64,19 @@ static int32_t flag_process(struct dax_adapter_data *adapter_data, enum dax_flag_opt_mode opt_mode) { #ifdef __ZEPHYR__ - int32_t bit = ffs(flag) - 1; + atomic_val_t mask = (atomic_val_t)flag; switch (opt_mode) { case DAX_FLAG_READ: - return atomic_test_bit(&adapter_data->proc_flags, bit); + return (atomic_get(&adapter_data->proc_flags) & mask) != 0; case DAX_FLAG_SET: - atomic_set_bit(&adapter_data->proc_flags, bit); + atomic_or(&adapter_data->proc_flags, mask); break; case DAX_FLAG_CLEAR: - atomic_clear_bit(&adapter_data->proc_flags, bit); + atomic_and(&adapter_data->proc_flags, ~mask); break; case DAX_FLAG_READ_AND_CLEAR: - return atomic_test_and_clear_bit(&adapter_data->proc_flags, bit); + return (atomic_and(&adapter_data->proc_flags, ~mask) & mask) != 0; default: break; }