diff options
-rw-r--r-- | drivers/media/dvb/dvb-core/demux.h | 5 | ||||
-rw-r--r-- | drivers/media/dvb/dvb-core/dvb_demux.c | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/drivers/media/dvb/dvb-core/demux.h b/drivers/media/dvb/dvb-core/demux.h index 9719a3b30f78..7d7b0067f228 100644 --- a/drivers/media/dvb/dvb-core/demux.h +++ b/drivers/media/dvb/dvb-core/demux.h | |||
@@ -48,8 +48,11 @@ | |||
48 | * DMX_MAX_SECFEED_SIZE: Maximum length (in bytes) of a private section feed filter. | 48 | * DMX_MAX_SECFEED_SIZE: Maximum length (in bytes) of a private section feed filter. |
49 | */ | 49 | */ |
50 | 50 | ||
51 | #ifndef DMX_MAX_SECTION_SIZE | ||
52 | #define DMX_MAX_SECTION_SIZE 4096 | ||
53 | #endif | ||
51 | #ifndef DMX_MAX_SECFEED_SIZE | 54 | #ifndef DMX_MAX_SECFEED_SIZE |
52 | #define DMX_MAX_SECFEED_SIZE 4096 | 55 | #define DMX_MAX_SECFEED_SIZE (DMX_MAX_SECTION_SIZE + 188) |
53 | #endif | 56 | #endif |
54 | 57 | ||
55 | 58 | ||
diff --git a/drivers/media/dvb/dvb-core/dvb_demux.c b/drivers/media/dvb/dvb-core/dvb_demux.c index dc476dda2b71..b4c899b15959 100644 --- a/drivers/media/dvb/dvb-core/dvb_demux.c +++ b/drivers/media/dvb/dvb-core/dvb_demux.c | |||
@@ -246,7 +246,7 @@ static int dvb_dmx_swfilter_section_copy_dump(struct dvb_demux_feed *feed, | |||
246 | 246 | ||
247 | for (n = 0; sec->secbufp + 2 < limit; n++) { | 247 | for (n = 0; sec->secbufp + 2 < limit; n++) { |
248 | seclen = section_length(sec->secbuf); | 248 | seclen = section_length(sec->secbuf); |
249 | if (seclen <= 0 || seclen > DMX_MAX_SECFEED_SIZE | 249 | if (seclen <= 0 || seclen > DMX_MAX_SECTION_SIZE |
250 | || seclen + sec->secbufp > limit) | 250 | || seclen + sec->secbufp > limit) |
251 | return 0; | 251 | return 0; |
252 | sec->seclen = seclen; | 252 | sec->seclen = seclen; |