media: dvb-core: Fix receiving invalid EIT-sections
authorJohann Friedrichs <johann.friedrichs@web.de>
Thu, 21 Nov 2019 15:19:05 +0000 (16:19 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Wed, 8 Jan 2020 10:46:34 +0000 (11:46 +0100)
Resetting buf without resetting pusi_seen at a channel-switch can lead
to copying the rest of a section to the start of buf, but treating it as
a complete section, when the next pusi arrives.
EIT-sections starting without valid header were randomly received during
an EIT-scan on a transponder.

Signed-off-by: Johann Friedrichs <johann.friedrichs@web.de>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/dvb-core/dvb_demux.c

index 39a2c6c..5fde1d3 100644 (file)
@@ -971,6 +971,7 @@ static int dmx_section_feed_start_filtering(struct dmx_section_feed *feed)
        dvbdmxfeed->feed.sec.secbuf = dvbdmxfeed->feed.sec.secbuf_base;
        dvbdmxfeed->feed.sec.secbufp = 0;
        dvbdmxfeed->feed.sec.seclen = 0;
+       dvbdmxfeed->pusi_seen = false;
 
        if (!dvbdmx->start_feed) {
                mutex_unlock(&dvbdmx->mutex);