mirror of
https://github.com/torvalds/linux.git
synced 2026-10-17 06:10:08 +02:00
snd_cobalt_card_create() stores cobsc in sc->private_data and installs
snd_cobalt_card_private_free() as sc->private_free. From that point,
snd_card_free(sc) releases cobsc through the ALSA card cleanup path.
If cobalt_alsa_init() fails after snd_cobalt_card_create(), the
err_exit_free path calls snd_card_free(sc) and then kfree(cobsc). That
second free releases the same object again.
Remove the explicit kfree(cobsc) and leave ownership with the ALSA card.
This issue was found by a static analysis checker and confirmed by
manual source review.
Fixes:
|
||
|---|---|---|
| .. | ||
| cobalt-alsa-main.c | ||
| cobalt-alsa-pcm.c | ||
| cobalt-alsa-pcm.h | ||
| cobalt-alsa.h | ||
| cobalt-cpld.c | ||
| cobalt-cpld.h | ||
| cobalt-driver.c | ||
| cobalt-driver.h | ||
| cobalt-flash.c | ||
| cobalt-flash.h | ||
| cobalt-i2c.c | ||
| cobalt-i2c.h | ||
| cobalt-irq.c | ||
| cobalt-irq.h | ||
| cobalt-omnitek.c | ||
| cobalt-omnitek.h | ||
| cobalt-v4l2.c | ||
| cobalt-v4l2.h | ||
| Kconfig | ||
| m00233_video_measure_memmap_package.h | ||
| m00235_fdma_packer_memmap_package.h | ||
| m00389_cvi_memmap_package.h | ||
| m00460_evcnt_memmap_package.h | ||
| m00473_freewheel_memmap_package.h | ||
| m00479_clk_loss_detector_memmap_package.h | ||
| m00514_syncgen_flow_evcnt_memmap_package.h | ||
| Makefile | ||