aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb-core
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@osg.samsung.com>2015-02-23 07:41:17 -0500
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2015-02-23 14:10:54 -0500
commit8a26a258bdb82db241cdc35f332f88dd67bdb9c9 (patch)
treead61d35b481f8f1fdeda923b683921ec47e51029 /drivers/media/dvb-core
parent99a85b901eb54f62ff0c3fd6eb56e60b7b9f15c8 (diff)
[media] dvb core: only start media entity if not NULL
The logic there tries to start the media entity even if it doesn't exist, causing this bug: [ 314.356162] BUG: unable to handle kernel NULL pointer dereference at 0000000000000010 [ 314.356202] IP: [<ffffffffa02ef74c>] media_entity_pipeline_start+0x1c/0x390 [media] Reported-by: Gert-Jan van der Stroom <gjstroom@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'drivers/media/dvb-core')
-rw-r--r--drivers/media/dvb-core/dvb_frontend.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/media/dvb-core/dvb_frontend.c b/drivers/media/dvb-core/dvb_frontend.c
index aa5306908193..79d2fac5075c 100644
--- a/drivers/media/dvb-core/dvb_frontend.c
+++ b/drivers/media/dvb-core/dvb_frontend.c
@@ -712,7 +712,7 @@ static int dvb_frontend_thread(void *data)
712 /* FIXME: return an error if it fails */ 712 /* FIXME: return an error if it fails */
713 dev_info(fe->dvb->device, 713 dev_info(fe->dvb->device,
714 "proceeding with FE task\n"); 714 "proceeding with FE task\n");
715 } else { 715 } else if (fepriv->pipe_start_entity) {
716 ret = media_entity_pipeline_start(fepriv->pipe_start_entity, 716 ret = media_entity_pipeline_start(fepriv->pipe_start_entity,
717 &fepriv->pipe); 717 &fepriv->pipe);
718 if (ret) 718 if (ret)
@@ -830,7 +830,8 @@ restart:
830 } 830 }
831 831
832#ifdef CONFIG_MEDIA_CONTROLLER_DVB 832#ifdef CONFIG_MEDIA_CONTROLLER_DVB
833 media_entity_pipeline_stop(fepriv->pipe_start_entity); 833 if (fepriv->pipe_start_entity)
834 media_entity_pipeline_stop(fepriv->pipe_start_entity);
834 fepriv->pipe_start_entity = NULL; 835 fepriv->pipe_start_entity = NULL;
835#endif 836#endif
836 837