linux/include/sound
Kees Cook 80e698e2df
ASoC: soc-dapm: Annotate struct snd_soc_dapm_widget_list with __counted_by
Prepare for the coming implementation by GCC and Clang of the __counted_by
attribute. Flexible array members annotated with __counted_by can have
their accesses bounds-checked at run-time via CONFIG_UBSAN_BOUNDS (for
array indexing) and CONFIG_FORTIFY_SOURCE (for strcpy/memcpy-family
functions).

As found with Coccinelle[1], add __counted_by for struct snd_soc_dapm_widget_list.
Additionally, since the element count member must be set before accessing
the annotated flexible array member, move its initialization earlier.

Cc: Liam Girdwood <lgirdwood@gmail.com>
Cc: Mark Brown <broonie@kernel.org>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org>
Cc: alsa-devel@alsa-project.org
Cc: linux-hardening@vger.kernel.org
Link: https://github.com/kees/kernel-tools/blob/trunk/coccinelle/examples/counted_by.cocci [1]
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: "Gustavo A. R. Silva" <gustavoars@kernel.org>
Link: https://lore.kernel.org/r/20231003232852.work.257-kees@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-10-04 12:56:21 +01:00
..
ac97
sof ASoC: SOF: ipc4-mtrace: move debug slot related definitions to header.h 2023-09-19 13:48:45 +01:00
ac97_codec.h
aci.h
acp63_chip_offset_byte.h
ad1816a.h
ad1843.h
adau1373.h
ak4xxx-adda.h
ak4113.h
ak4114.h
ak4117.h
ak4531_codec.h
ak4641.h
alc5623.h
asequencer.h
asound.h
asoundef.h
compress_driver.h ALSA: compress: Don't embed device 2023-08-17 09:24:15 +02:00
control.h ALSA: vmaster: Add snd_ctl_add_followers() helper 2023-07-21 09:37:47 +02:00
core.h ALSA: core: Drop snd_device_initialize() 2023-08-17 09:24:33 +02:00
cs35l33.h
cs35l34.h
cs35l35.h
cs35l36.h
cs35l41.h ASoC: cs35l41: Fix broken shared boost activation 2023-09-11 13:34:36 +01:00
cs35l56.h ASoC: cs35l56: Remove unused hibernate wake constants 2023-10-03 14:51:19 +01:00
cs42l42.h
cs42l43.h ASoC: cs42l43: Add support for the cs42l43 2023-08-18 23:41:54 +01:00
cs42l52.h
cs42l56.h
cs42l73.h
cs4231-regs.h
cs4271.h
cs8403.h
cs8427.h
da7213.h
da7218.h
da7219-aad.h
da7219.h
da9055.h
designware_i2s.h ASoC: dwc: i2s: Add StarFive JH7110 SoC support 2023-08-23 13:56:40 +01:00
dmaengine_pcm.h ASoC: dmaengine: Drop unused iov_iter for process callback 2023-09-01 15:38:29 +02:00
emu10k1.h ALSA: emu10k1: set the "no filtering" bits on PCM voices on Audigy 2023-07-17 09:29:07 +02:00
emu10k1_synth.h
emu8000.h
emu8000_reg.h
emux_legacy.h
emux_synth.h ALSA: emu10k1: fix synthesizer pitch for E-MU cards at 44.1 kHz 2023-06-13 07:42:08 +02:00
es1688.h
graph_card.h ASoC: simple_card_utils.h: convert not to use asoc_xxx() 2023-09-25 14:16:14 +02:00
gus.h
hda-mlink.h ASoC: SOF: Intel: hda-mlink: add helper to get sublink LSDIID register 2023-08-07 23:09:46 +01:00
hda_chmap.h
hda_codec.h ASoC: Intel: Skylake: Use global PCI match macro 2023-07-18 14:22:19 +02:00
hda_component.h
hda_hwdep.h
hda_i915.h
hda_register.h
hda_regmap.h
hda_verbs.h
hdaudio.h ALSA: hda: Add controller matching macros 2023-07-18 14:22:17 +02:00
hdaudio_ext.h
hdmi-codec.h
hwdep.h ALSA: hwdep: Don't embed device 2023-08-17 09:24:01 +02:00
i2c.h
info.h ALSA: info: Remove unused function declarations 2023-08-08 14:45:45 +02:00
initval.h
intel-dsp-config.h
intel-nhlt.h
jack.h
madera-pdata.h
max9768.h ASoC: max9768: Convert to use GPIO descriptors 2023-09-11 12:50:05 +01:00
max98088.h
max98090.h
max98095.h
memalloc.h
minors.h
mixer_oss.h
mpu401.h
omap-hdmi-audio.h
opl3.h
opl4.h
pcm-indirect.h
pcm.h ALSA: pcm: Drop obsoleted PCM copy_user and copy_kernel ops 2023-08-18 12:19:19 +02:00
pcm_drm_eld.h
pcm_iec958.h
pcm_oss.h
pcm_params.h
pt2258.h
pxa2xx-lib.h
rawmidi.h ALSA: rawmidi: Don't embed device 2023-08-17 09:24:08 +02:00
rt286.h
rt298.h
rt1015.h
rt5514.h
rt5659.h
rt5660.h
rt5663.h
rt5665.h ASoC: rt5665: Convert to use GPIO descriptors 2023-08-17 15:10:11 +01:00
rt5668.h ASoC: rt5668: Convert to use GPIO descriptors 2023-08-17 15:10:12 +01:00
rt5682.h ASoC: rt5682: Convert to use GPIO descriptors 2023-08-17 15:10:13 +01:00
rt5682s.h ASoC: rt5682s: Convert to use GPIO descriptors 2023-08-17 15:10:13 +01:00
sb.h
sb16_csp.h
sdw.h
seq_device.h
seq_kernel.h
seq_midi_emul.h
seq_midi_event.h
seq_oss.h
seq_oss_legacy.h
seq_virmidi.h
sh_dac_audio.h
sh_fsi.h
simple_card.h ASoC: remove asoc_xxx() compatible macro 2023-09-26 17:18:45 +02:00
simple_card_utils.h ASoC: remove asoc_xxx() compatible macro 2023-09-26 17:18:45 +02:00
snd_wavefront.h
soc-acpi-intel-match.h ASoC: Intel: common: add ACPI matching tables for Arrow Lake 2023-09-16 00:05:56 +01:00
soc-acpi.h ASoC: SOF: Pass PCI SSID to machine driver 2023-09-12 18:53:48 +01:00
soc-card.h ASoC: soc.h: convert asoc_xxx() to snd_soc_xxx() 2023-09-25 14:16:13 +02:00
soc-component.h ASoC: Name iov_iter argument as iterator instead of buffer 2023-09-01 15:38:49 +02:00
soc-dai.h ASoC: soc-dai.h: remove unused call back functions 2023-08-14 13:10:35 +01:00
soc-dapm.h ASoC: soc-dapm: Annotate struct snd_soc_dapm_widget_list with __counted_by 2023-10-04 12:56:21 +01:00
soc-dpcm.h
soc-jack.h
soc-link.h
soc-topology.h
soc.h ASoC: remove asoc_xxx() compatible macro 2023-09-26 17:18:45 +02:00
sof.h ASoC: SOF: Drop unused IPC type defines 2023-09-19 13:49:13 +01:00
soundfont.h
spear_dma.h
spear_spdif.h
sta32x.h
sta350.h
tas2552-plat.h
tas2781-dsp.h ASoC: tas2781: fixed compiling issue in m68k 2023-10-02 14:06:27 +01:00
tas2781-tlv.h ASoC: tas2781: Add Header file for tas2781 driver 2023-06-19 12:59:29 +01:00
tas2781.h ASoC: tas2781: Add Header file for tas2781 driver 2023-06-19 12:59:29 +01:00
tas5086.h
tea6330t.h
timer.h
tlv.h
tlv320aic32x4.h
tlv320dac33-plat.h
tpa6130a2-plat.h
uda1380.h
ump.h ALSA: ump: Don't create unused substreams for static blocks 2023-08-24 10:03:17 +02:00
ump_convert.h ALSA: ump: Export MIDI1 / UMP conversion helpers 2023-06-23 09:56:11 +02:00
ump_msg.h ALSA: ump: Support UMP Endpoint and Function Block parsing 2023-06-12 18:22:26 +02:00
util_mem.h
vx_core.h
wavefront.h
wm0010.h
wm1250-ev1.h
wm2000.h
wm2200.h
wm5100.h
wm8903.h
wm8904.h
wm8955.h
wm8960.h
wm8962.h
wm8993.h
wm8996.h
wm9081.h
wm9090.h
wss.h