| From 1267f44b7c3557d97eb6e3b9621f249f8a66ad51 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sat, 19 Jan 2019 22:52:23 -0500 |
| Subject: media: cx23885: check allocation return |
| |
| From: Nicholas Mc Guire <hofrat@osadl.org> |
| |
| [ Upstream commit a3d7f22ef34ec4206b50ee121384d5c8bebd5591 ] |
| |
| Checking of kmalloc() seems to have been committed - as |
| cx23885_dvb_register() is checking for != 0 return, returning |
| -ENOMEM should be fine here. While at it address the coccicheck |
| suggestion to move to kmemdup rather than using kmalloc+memcpy. |
| |
| Fixes: 46b21bbaa8a8 ("[media] Add support for DViCO FusionHDTV DVB-T Dual Express2") |
| |
| Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> |
| Signed-off-by: Sean Young <sean@mess.org> |
| Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/media/pci/cx23885/cx23885-dvb.c | 5 +++-- |
| 1 file changed, 3 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/media/pci/cx23885/cx23885-dvb.c b/drivers/media/pci/cx23885/cx23885-dvb.c |
| index 818f3c2fc98d8..1d86e57f4d9fd 100644 |
| --- a/drivers/media/pci/cx23885/cx23885-dvb.c |
| +++ b/drivers/media/pci/cx23885/cx23885-dvb.c |
| @@ -1471,8 +1471,9 @@ static int dvb_register(struct cx23885_tsport *port) |
| if (fe0->dvb.frontend != NULL) { |
| struct i2c_adapter *tun_i2c; |
| |
| - fe0->dvb.frontend->sec_priv = kmalloc(sizeof(dib7000p_ops), GFP_KERNEL); |
| - memcpy(fe0->dvb.frontend->sec_priv, &dib7000p_ops, sizeof(dib7000p_ops)); |
| + fe0->dvb.frontend->sec_priv = kmemdup(&dib7000p_ops, sizeof(dib7000p_ops), GFP_KERNEL); |
| + if (!fe0->dvb.frontend->sec_priv) |
| + return -ENOMEM; |
| tun_i2c = dib7000p_ops.get_i2c_master(fe0->dvb.frontend, DIBX000_I2C_INTERFACE_TUNER, 1); |
| if (!dvb_attach(dib0070_attach, fe0->dvb.frontend, tun_i2c, &dib7070p_dib0070_config)) |
| return -ENODEV; |
| -- |
| 2.20.1 |
| |