android_kernel_samsung_msm8976/include/sound
Daniel Rosenberg 1d58fb16a8 ANDROID: sound: rawmidi: Hold lock around realloc
The SNDRV_RAWMIDI_STREAM_{OUTPUT,INPUT} ioctls may reallocate
runtime->buffer while other kernel threads are accessing it.  If the
underlying krealloc() call frees the original buffer, then this can turn
into a use-after-free.

Most of these accesses happen while the thread is holding runtime->lock,
and can be fixed by just holding the same lock while replacing
runtime->buffer, however we can't hold this spinlock while
snd_rawmidi_kernel_{read1,write1} are copying to/from userspace.  We
need to add and acquire a new mutex to prevent this from happening
concurrently with reallocation.  We hold this mutex during the entire
reallocation process, to also prevent multiple concurrent reallocations
leading to a double-free.

Signed-off-by: Daniel Rosenberg <drosen@google.com>
bug: 64315347
Change-Id: I05764d4f1a38f373eb7c0ac1c98607ee5ff0eded
2018-05-26 00:39:34 +02:00
..
ac97_codec.h
aci.h
ad1816a.h
ad1843.h
adau1373.h
adsp_err.h sound: adsp_err: initial version of adsp error code header file 2015-06-12 01:49:06 -07:00
aess.h
ak4xxx-adda.h
ak4113.h ALSA: ak411x: Fix stall in work callback 2015-02-11 14:48:17 +08:00
ak4114.h ALSA: ak411x: Fix stall in work callback 2015-02-11 14:48:17 +08:00
ak4117.h
ak4531_codec.h
ak4641.h
alc5623.h
apr_audio-v2.h Import latest Samsung release 2017-04-18 03:43:52 +02:00
apr_audio.h msm: qdsp6v2: reorganize kernel driver under misc drivers. 2013-12-24 11:11:10 +05:30
asequencer.h
asound.h
asoundef.h
atmel-abdac.h
atmel-ac97c.h
audio_cal_utils.h ASoC: msm: qdsp6v2: Update calibration driver and voice driver 2014-08-21 18:24:24 -07:00
audio_calibration.h ASoC: qdsp6v2: Move calibration header files 2014-08-08 16:56:08 -07:00
audio_slimslave.h ASoC: msm: Add new slimbus slave driver 2013-12-18 13:52:15 -08:00
compress_driver.h ALSA: compress: Add support to send codec specific data 2015-08-10 08:55:22 +05:30
control.h
core.h Merge upstream tag 'v3.10.49' into msm-3.10 2014-08-20 13:23:09 -07:00
cpe_cmi.h ASoC: msm-cpe-lsm: Add support for openCPE 2015-10-14 11:34:32 +05:30
cpe_core.h ASoC: msm: Add support for HW MAD bypass feature for listen 2015-12-15 20:03:55 -08:00
cs42l52.h
cs4231-regs.h
cs4271.h
cs8403.h
cs8427.h
da7213.h
da9055.h
designware_i2s.h
dmaengine_pcm.h
emu10k1.h ALSA: emu10k1: Emu10k2 32 bit DMA mode 2015-05-13 05:15:41 -07:00
emu10k1_synth.h
emu8000.h
emu8000_reg.h
emux_legacy.h
emux_synth.h
es1688.h
gus.h
hda_hwdep.h
hwdep.h
i2c.h
info.h ALSA: core: Add an API to create and register module 2015-07-22 05:04:09 -07:00
initval.h
jack.h ALSA: jack: Add support to report second microphone 2014-01-13 17:21:41 -08:00
l3.h
max9768.h
max98088.h
max98090.h
max98095.h
memalloc.h ALSA: memalloc.h - fix wrong truncation of dma_addr_t 2013-12-20 07:45:06 -08:00
minors.h
mixer_oss.h
mpu401.h
msm-audio-effects-q6-v2.h ASoC: msm: audio-effects: fix stack overread and heap overwrite 2016-05-23 02:34:21 -07:00
msm-dai-q6-v2.h ASoC: Add support for senary capture TX dailink 2015-06-01 14:33:08 +05:30
msm-slim-dma.h ASoC: msm-cpe: Fix sequence for data channel teardown 2016-01-10 21:47:39 -08:00
opl3.h
opl4.h
pcm-indirect.h
pcm.h Merge "ALSA: pcm: use lock to protect substream runtime resource" 2018-01-22 19:30:03 -08:00
pcm_oss.h
pcm_params.h
pt2258.h
pxa2xx-lib.h
q6adm-v2.h Merge tag 'LA.BR.1.3.6-03910-8976.0' of https://source.codeaurora.org/quic/la/kernel/msm-3.10 into HEAD 2017-05-26 13:28:48 +02:00
q6afe-v2.h ASoC: msm: add support for AVS 2.7 in native drivers 2016-11-14 18:46:24 +05:30
q6asm-v2.h Import latest Samsung release 2017-04-18 03:43:52 +02:00
q6audio-v2.h msm: qdsp6v2: reorganize kernel driver under misc drivers. 2013-12-24 11:11:10 +05:30
q6core.h ASoC: msm: qdsp6v2: Add support to query adsp version 2016-11-14 18:37:12 +05:30
q6lsm.h ASoC: msm-lsm-client: free lsm client data in msm_lsm_close 2015-12-24 01:53:33 -08:00
rawmidi.h ANDROID: sound: rawmidi: Hold lock around realloc 2018-05-26 00:39:34 +02:00
rt5659.h Import latest Samsung release 2017-04-18 03:43:52 +02:00
s3c24xx_uda134x.h
sb.h
sb16_csp.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
snd_wavefront.h
soc-dai.h ASoC: core: Add support for getting TX and RX channels 2013-09-04 17:23:43 -07:00
soc-dapm.h ASoC: wcd9320: Codec changes kernel 3.10 upgrade 2013-09-04 17:23:44 -07:00
soc-dpcm.h ASoC: Cold start latency reduction 2014-04-21 18:13:04 -07:00
soc.h ASoC: soc-core: export function to find codec 2015-10-14 01:44:09 -07:00
soundfont.h
spear_dma.h
spear_spdif.h
sta32x.h
tas5086.h
tea575x-tuner.h
tea6330t.h
timer.h
tlv.h
tlv320aic3x.h
tlv320aic32x4.h
tlv320dac33-plat.h
tpa6130a2-plat.h
uda134x.h
uda1380.h
util_mem.h
voice_params.h
voice_svc.h msm: Add driver to communicate with voice services on DSP over APR 2014-04-11 02:57:58 -07:00
vx_core.h
wavefront.h
wm0010.h
wm1250-ev1.h
wm2000.h
wm2200.h
wm5100.h
wm8903.h
wm8904.h ASoC: wm8904: Correct number of EQ registers 2015-11-09 10:12:58 -08:00
wm8955.h
wm8960.h
wm8962.h
wm8993.h
wm8996.h
wm9081.h
wm9090.h
wss.h