]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/commitdiff
media: cx23885: Handle return value of kasprintf
authorArvind Yadav <arvind.yadav.cs@gmail.com>
Wed, 20 Sep 2017 07:37:13 +0000 (03:37 -0400)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Fri, 8 Dec 2017 15:40:39 +0000 (10:40 -0500)
kasprintf() can fail here and we must check its return value.

Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/pci/cx23885/cx23885-input.c

index 944b70831f12941ad7f0ad97a49bdb320fe17288..0f4e54294bb7b15f8fe3925a13ed46ddd10ef854 100644 (file)
@@ -340,14 +340,23 @@ int cx23885_input_init(struct cx23885_dev *dev)
        kernel_ir->cx = dev;
        kernel_ir->name = kasprintf(GFP_KERNEL, "cx23885 IR (%s)",
                                    cx23885_boards[dev->board].name);
+       if (!kernel_ir->name) {
+               ret = -ENOMEM;
+               goto err_out_free;
+       }
+
        kernel_ir->phys = kasprintf(GFP_KERNEL, "pci-%s/ir0",
                                    pci_name(dev->pci));
+       if (!kernel_ir->phys) {
+               ret = -ENOMEM;
+               goto err_out_free_name;
+       }
 
        /* input device */
        rc = rc_allocate_device(RC_DRIVER_IR_RAW);
        if (!rc) {
                ret = -ENOMEM;
-               goto err_out_free;
+               goto err_out_free_phys;
        }
 
        kernel_ir->rc = rc;
@@ -382,9 +391,11 @@ err_out_stop:
        cx23885_input_ir_stop(dev);
        dev->kernel_ir = NULL;
        rc_free_device(rc);
-err_out_free:
+err_out_free_phys:
        kfree(kernel_ir->phys);
+err_out_free_name:
        kfree(kernel_ir->name);
+err_out_free:
        kfree(kernel_ir);
        return ret;
 }