summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/cx88/cx88-alsa.c
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@infradead.org>2006-03-14 12:12:39 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2006-03-14 12:12:39 -0300
commit1c56b8f4079af9413ea15f420259e97187a3bf7a (patch)
tree42a3f1eb4a419e49badcc1ce966120f6a88a1fe1 /linux/drivers/media/video/cx88/cx88-alsa.c
parente07574e1290ffc63432bc2b06a7677abc365de2d (diff)
parent0b831dcdb633365e47049c9aa5f243cce99569e5 (diff)
downloadmediapointer-dvb-s2-1c56b8f4079af9413ea15f420259e97187a3bf7a.tar.gz
mediapointer-dvb-s2-1c56b8f4079af9413ea15f420259e97187a3bf7a.tar.bz2
Snd_cx88_create: don't dereference NULL core
From: Duncan Sands <duncan.sands@math.u-psud.fr> If the call to cx88_core_get returns a NULL value, it is dereferenced by cx88_reset, and perhaps by cx88_core_put. Spotted by the Coverity checker. Signed-off-by: Duncan Sands <baldrick@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'linux/drivers/media/video/cx88/cx88-alsa.c')
-rw-r--r--linux/drivers/media/video/cx88/cx88-alsa.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/linux/drivers/media/video/cx88/cx88-alsa.c b/linux/drivers/media/video/cx88/cx88-alsa.c
index e5b9007c2..e6cc40e04 100644
--- a/linux/drivers/media/video/cx88/cx88-alsa.c
+++ b/linux/drivers/media/video/cx88/cx88-alsa.c
@@ -686,6 +686,11 @@ static int __devinit snd_cx88_create(snd_card_t *card, struct pci_dev *pci,
chip = (snd_cx88_card_t *) card->private_data;
core = cx88_core_get(pci);
+ if (NULL == core) {
+ err = -EINVAL;
+ kfree (chip);
+ return err;
+ }
if (!pci_dma_supported(pci,0xffffffff)) {
dprintk(0, "%s/1: Oops: no 32bit PCI DMA ???\n",core->name);
@@ -702,11 +707,6 @@ static int __devinit snd_cx88_create(snd_card_t *card, struct pci_dev *pci,
spin_lock_init(&chip->reg_lock);
cx88_reset(core);
- if (NULL == core) {
- err = -EINVAL;
- kfree (chip);
- return err;
- }
chip->core = core;
/* get irq */