From a225b1346d434fb0ceec5c81718879f402d31373 Mon Sep 17 00:00:00 2001 From: Sandhya Mutha Naga Venkata Date: Tue, 13 Jun 2023 16:08:57 +0530 Subject: [PATCH] ASoC: msm-audio-effects-q6-v2: Add BPF order check Added check for bandpassfilter order in order to avoid coeff len going out of bounds thereby leading to memory overflow issues. Change-Id: I401f5f38a3d54d9d6af66e770d03629ed5e1a2bd Signed-off-by: Soumya Managoli --- asoc/msm-audio-effects-q6-v2.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/asoc/msm-audio-effects-q6-v2.c b/asoc/msm-audio-effects-q6-v2.c index 35b50e724c6a..cb795f5bef45 100644 --- a/asoc/msm-audio-effects-q6-v2.c +++ b/asoc/msm-audio-effects-q6-v2.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* Copyright (c) 2013-2021, The Linux Foundation. All rights reserved. + * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved. */ #include @@ -1002,6 +1003,14 @@ int msm_audio_effects_pbe_handler(struct audio_client *ac, pbe->config.reserved = GET_NEXT(values, param_max_offset, rc); + if ((pbe->config.bandpass_filter_order > 3) || + (pbe->config.bandpass_filter_order < 1)) { + pr_err("%s: Invalid BPF order\n", + __func__); + rc = -EINVAL; + goto invalid_config; + } + p_coeffs = &pbe->config.p1LowPassCoeffs[0]; lpf_len = (pbe->config.xover_filter_order == 3) ? 10 : 5; hpf_len = (pbe->config.xover_filter_order == 3) ? 10 : 5;