Commit 7266dda2 authored by Colin Ian King's avatar Colin Ian King Committed by Mauro Carvalho Chehab

media: cx23885: Fix snd_card_free call on null card pointer

Currently a call to snd_card_new that fails will set card with a NULL
pointer, this causes a null pointer dereference on the error cleanup
path when card it passed to snd_card_free. Fix this by adding a new
error exit path that does not call snd_card_free and exiting via this
new path.

Addresses-Coverity: ("Explicit null dereference")

Fixes: 9e44d632 ("[media] cx23885: Add ALSA support")
Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent 42bb98e4
...@@ -550,7 +550,7 @@ struct cx23885_audio_dev *cx23885_audio_register(struct cx23885_dev *dev) ...@@ -550,7 +550,7 @@ struct cx23885_audio_dev *cx23885_audio_register(struct cx23885_dev *dev)
SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1,
THIS_MODULE, sizeof(struct cx23885_audio_dev), &card); THIS_MODULE, sizeof(struct cx23885_audio_dev), &card);
if (err < 0) if (err < 0)
goto error; goto error_msg;
chip = (struct cx23885_audio_dev *) card->private_data; chip = (struct cx23885_audio_dev *) card->private_data;
chip->dev = dev; chip->dev = dev;
...@@ -576,6 +576,7 @@ struct cx23885_audio_dev *cx23885_audio_register(struct cx23885_dev *dev) ...@@ -576,6 +576,7 @@ struct cx23885_audio_dev *cx23885_audio_register(struct cx23885_dev *dev)
error: error:
snd_card_free(card); snd_card_free(card);
error_msg:
pr_err("%s(): Failed to register analog audio adapter\n", pr_err("%s(): Failed to register analog audio adapter\n",
__func__); __func__);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment