| From a8598dcc7efb89fbe6e4fd9aa0dbd0b2731ad801 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 4 Aug 2021 10:50:10 +0200 |
| Subject: media: cx23885: Fix snd_card_free call on null card pointer |
| |
| From: Colin Ian King <colin.king@canonical.com> |
| |
| [ Upstream commit 7266dda2f1dfe151b12ef0c14eb4d4e622fb211c ] |
| |
| 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: 9e44d63246a9 ("[media] cx23885: Add ALSA support") |
| Signed-off-by: Colin Ian King <colin.king@canonical.com> |
| Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> |
| Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/media/pci/cx23885/cx23885-alsa.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/media/pci/cx23885/cx23885-alsa.c b/drivers/media/pci/cx23885/cx23885-alsa.c |
| index a8e980c6dacb9..50772c2611cad 100644 |
| --- a/drivers/media/pci/cx23885/cx23885-alsa.c |
| +++ b/drivers/media/pci/cx23885/cx23885-alsa.c |
| @@ -550,7 +550,7 @@ struct cx23885_audio_dev *cx23885_audio_register(struct cx23885_dev *dev) |
| SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1, |
| THIS_MODULE, sizeof(struct cx23885_audio_dev), &card); |
| if (err < 0) |
| - goto error; |
| + goto error_msg; |
| |
| chip = (struct cx23885_audio_dev *) card->private_data; |
| chip->dev = dev; |
| @@ -576,6 +576,7 @@ struct cx23885_audio_dev *cx23885_audio_register(struct cx23885_dev *dev) |
| |
| error: |
| snd_card_free(card); |
| +error_msg: |
| pr_err("%s(): Failed to register analog audio adapter\n", |
| __func__); |
| |
| -- |
| 2.33.0 |
| |