Re: [PATCH] ASoC:codecs: lpass: Fix for KASAN use_after_free out of bounds

From: kernel test robot
Date: Tue May 09 2023 - 04:44:58 EST


Hi Ravulapati,

kernel test robot noticed the following build warnings:

[auto build test WARNING on broonie-sound/for-next]
[also build test WARNING on linus/master v6.4-rc1 next-20230509]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Ravulapati-Vishnu-Vardhan-Rao/ASoC-codecs-lpass-Fix-for-KASAN-use_after_free-out-of-bounds/20230509-141447
base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
patch link: https://lore.kernel.org/r/20230509061321.10218-1-quic_visr%40quicinc.com
patch subject: [PATCH] ASoC:codecs: lpass: Fix for KASAN use_after_free out of bounds
config: x86_64-allmodconfig (https://download.01.org/0day-ci/archive/20230509/202305091655.6KwfcuWa-lkp@xxxxxxxxx/config)
compiler: gcc-11 (Debian 11.3.0-12) 11.3.0
reproduce (this is a W=1 build):
# https://github.com/intel-lab-lkp/linux/commit/83fb508f4eb95e9495f0e440b47226040e3b4efc
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Ravulapati-Vishnu-Vardhan-Rao/ASoC-codecs-lpass-Fix-for-KASAN-use_after_free-out-of-bounds/20230509-141447
git checkout 83fb508f4eb95e9495f0e440b47226040e3b4efc
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 O=build_dir ARCH=x86_64 olddefconfig
make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash sound/soc/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Link: https://lore.kernel.org/oe-kbuild-all/202305091655.6KwfcuWa-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

sound/soc/codecs/lpass-tx-macro.c: In function 'tx_macro_put_dec_enum':
sound/soc/codecs/lpass-tx-macro.c:801:57: warning: missing terminating " character
801 | dev_err(component->dev, "dmic for clk sel is wrong,
| ^
sound/soc/codecs/lpass-tx-macro.c:802:79: warning: missing terminating " character
802 | expected less than 4 but received %d\n", dmic);
| ^
sound/soc/codecs/lpass-tx-macro.c:2199:23: error: unterminated argument list invoking macro "dev_err"
2199 | MODULE_LICENSE("GPL");
| ^
sound/soc/codecs/lpass-tx-macro.c:801:33: error: 'dev_err' undeclared (first use in this function); did you mean '_dev_err'?
801 | dev_err(component->dev, "dmic for clk sel is wrong,
| ^~~~~~~
| _dev_err
sound/soc/codecs/lpass-tx-macro.c:801:33: note: each undeclared identifier is reported only once for each function it appears in
sound/soc/codecs/lpass-tx-macro.c:801:40: error: expected ';' at end of input
801 | dev_err(component->dev, "dmic for clk sel is wrong,
| ^
| ;
......
sound/soc/codecs/lpass-tx-macro.c:801:33: error: expected declaration or statement at end of input
801 | dev_err(component->dev, "dmic for clk sel is wrong,
| ^~~~~~~
sound/soc/codecs/lpass-tx-macro.c:801:33: error: expected declaration or statement at end of input
sound/soc/codecs/lpass-tx-macro.c:788:19: note: '-Wmisleading-indentation' is disabled from this point onwards, since column-tracking was disabled due to the size of the code/headers
788 | } else if (val < 5) {
| ^~~~
sound/soc/codecs/lpass-tx-macro.c:788:19: note: adding '-flarge-source-files' will allow for more column-tracking support, at the expense of compilation time and memory
sound/soc/codecs/lpass-tx-macro.c:801:33: error: expected declaration or statement at end of input
801 | dev_err(component->dev, "dmic for clk sel is wrong,
| ^~~~~~~
sound/soc/codecs/lpass-tx-macro.c:801:33: error: expected declaration or statement at end of input
At top level:
sound/soc/codecs/lpass-tx-macro.c:737:12: warning: 'tx_macro_put_dec_enum' defined but not used [-Wunused-function]
737 | static int tx_macro_put_dec_enum(struct snd_kcontrol *kcontrol,
| ^~~~~~~~~~~~~~~~~~~~~
sound/soc/codecs/lpass-tx-macro.c:717:12: warning: 'tx_macro_mclk_event' defined but not used [-Wunused-function]
717 | static int tx_macro_mclk_event(struct snd_soc_dapm_widget *w,
| ^~~~~~~~~~~~~~~~~~~
sound/soc/codecs/lpass-tx-macro.c:699:13: warning: 'tx_macro_mute_update_callback' defined but not used [-Wunused-function]
699 | static void tx_macro_mute_update_callback(struct work_struct *work)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/soc/codecs/lpass-tx-macro.c:655:13: warning: 'tx_macro_tx_hpf_corner_freq_callback' defined but not used [-Wunused-function]
655 | static void tx_macro_tx_hpf_corner_freq_callback(struct work_struct *work)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> sound/soc/codecs/lpass-tx-macro.c:587:35: warning: 'tx_regmap_config' defined but not used [-Wunused-const-variable=]
587 | static const struct regmap_config tx_regmap_config = {
| ^~~~~~~~~~~~~~~~
In file included from include/sound/tlv.h:10,
from sound/soc/codecs/lpass-tx-macro.c:13:
>> sound/soc/codecs/lpass-tx-macro.c:281:35: warning: 'digital_gain' defined but not used [-Wunused-const-variable=]
281 | static const DECLARE_TLV_DB_SCALE(digital_gain, -8400, 100, -8400);
| ^~~~~~~~~~~~
include/uapi/sound/tlv.h:53:22: note: in definition of macro 'SNDRV_CTL_TLVD_DECLARE_DB_SCALE'
53 | unsigned int name[] = { \
| ^~~~
sound/soc/codecs/lpass-tx-macro.c:281:14: note: in expansion of macro 'DECLARE_TLV_DB_SCALE'
281 | static const DECLARE_TLV_DB_SCALE(digital_gain, -8400, 100, -8400);
| ^~~~~~~~~~~~~~~~~~~~


vim +/tx_regmap_config +587 sound/soc/codecs/lpass-tx-macro.c

c39667ddcfc516 Srinivas Kandagatla 2021-02-11 586
c39667ddcfc516 Srinivas Kandagatla 2021-02-11 @587 static const struct regmap_config tx_regmap_config = {
c39667ddcfc516 Srinivas Kandagatla 2021-02-11 588 .name = "tx_macro",
c39667ddcfc516 Srinivas Kandagatla 2021-02-11 589 .reg_bits = 16,
c39667ddcfc516 Srinivas Kandagatla 2021-02-11 590 .val_bits = 32,
c39667ddcfc516 Srinivas Kandagatla 2021-02-11 591 .reg_stride = 4,
c39667ddcfc516 Srinivas Kandagatla 2021-02-11 592 .cache_type = REGCACHE_FLAT,
c39667ddcfc516 Srinivas Kandagatla 2021-02-11 593 .max_register = TX_MAX_OFFSET,
c39667ddcfc516 Srinivas Kandagatla 2021-02-11 594 .reg_defaults = tx_defaults,
c39667ddcfc516 Srinivas Kandagatla 2021-02-11 595 .num_reg_defaults = ARRAY_SIZE(tx_defaults),
c39667ddcfc516 Srinivas Kandagatla 2021-02-11 596 .writeable_reg = tx_is_rw_register,
c39667ddcfc516 Srinivas Kandagatla 2021-02-11 597 .volatile_reg = tx_is_volatile_register,
c39667ddcfc516 Srinivas Kandagatla 2021-02-11 598 .readable_reg = tx_is_rw_register,
c39667ddcfc516 Srinivas Kandagatla 2021-02-11 599 };
c39667ddcfc516 Srinivas Kandagatla 2021-02-11 600

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests