Browse Source

[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>
Mauro Carvalho Chehab 10 years ago
parent
commit
8a26a258bd
1 changed files with 3 additions and 2 deletions
  1. 3 2
      drivers/media/dvb-core/dvb_frontend.c

+ 3 - 2
drivers/media/dvb-core/dvb_frontend.c

@@ -712,7 +712,7 @@ static int dvb_frontend_thread(void *data)
 		/* FIXME: return an error if it fails */
 		dev_info(fe->dvb->device,
 			"proceeding with FE task\n");
-	} else {
+	} else if (fepriv->pipe_start_entity) {
 		ret = media_entity_pipeline_start(fepriv->pipe_start_entity,
 						  &fepriv->pipe);
 		if (ret)
@@ -830,7 +830,8 @@ restart:
 	}
 
 #ifdef CONFIG_MEDIA_CONTROLLER_DVB
-	media_entity_pipeline_stop(fepriv->pipe_start_entity);
+	if (fepriv->pipe_start_entity)
+		media_entity_pipeline_stop(fepriv->pipe_start_entity);
 	fepriv->pipe_start_entity = NULL;
 #endif