Changeset  be7fd3c3a8c5 ("media: em28xx: Hauppauge DualHD
second tuner functionality") introduced a potential NULL pointer
dereference, as pointed by Coverity:

CID 1434731 (#1 of 1): Dereference after null check (FORWARD_NULL)16. 
var_deref_op: Dereferencing null pointer ops->resume.

var_compare_op: Comparing ops->resume to null implies that ops->resume might be 
null.
1174                if (ops->resume)
1175                        ops->resume(dev);
1176                if (dev->dev_next)
1177                        ops->resume(dev->dev_next);

Fixes: be7fd3c3a8c5 ("media: em28xx: Hauppauge DualHD second tuner 
functionality")
Signed-off-by: Mauro Carvalho Chehab <mche...@s-opensource.com>
---
 drivers/media/usb/em28xx/em28xx-core.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/media/usb/em28xx/em28xx-core.c 
b/drivers/media/usb/em28xx/em28xx-core.c
index 36d341fb65dd..0cefd29184f6 100644
--- a/drivers/media/usb/em28xx/em28xx-core.c
+++ b/drivers/media/usb/em28xx/em28xx-core.c
@@ -1171,8 +1171,9 @@ int em28xx_resume_extension(struct em28xx *dev)
        dev_info(&dev->intf->dev, "Resuming extensions\n");
        mutex_lock(&em28xx_devlist_mutex);
        list_for_each_entry(ops, &em28xx_extension_devlist, next) {
-               if (ops->resume)
-                       ops->resume(dev);
+               if (!ops->resume)
+                       continue;
+               ops->resume(dev);
                if (dev->dev_next)
                        ops->resume(dev->dev_next);
        }
-- 
2.14.3

Reply via email to