V4L/DVB (11243): cx88: Missing failure checks
authorAlan Cox <alan@lxorguk.ukuu.org.uk>
Thu, 26 Mar 2009 20:44:38 +0000 (17:44 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 30 Mar 2009 15:43:43 +0000 (12:43 -0300)
The ioremap one was reported in October 2007 (Bug 9146), the kmalloc one
was blindingly obvious while looking at the ioremap one

The bug suggests some other configuration for lots of I/O memory (32MB per
device is ioremapped) but I'll leave that to the real maintainers

Signed-off-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/cx88/cx88-cards.c

index b9def8cbcdabd116cfadd8040b94a03871235b34..348f6ef08b2aab8ab5017b34cb3af1c41a9aef41 100644 (file)
@@ -3127,6 +3127,8 @@ struct cx88_core *cx88_core_create(struct pci_dev *pci, int nr)
        int i;
 
        core = kzalloc(sizeof(*core), GFP_KERNEL);
+       if (core == NULL)
+               return NULL;
 
        atomic_inc(&core->refcount);
        core->pci_bus  = pci->bus->number;
@@ -3157,6 +3159,11 @@ struct cx88_core *cx88_core_create(struct pci_dev *pci, int nr)
                              pci_resource_len(pci, 0));
        core->bmmio = (u8 __iomem *)core->lmmio;
 
+       if (core->lmmio == NULL) {
+               kfree(core);
+               return NULL;
+       }
+
        /* board config */
        core->boardnr = UNSET;
        if (card[core->nr] < ARRAY_SIZE(cx88_boards))