summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetri Hintukainen <phintuka@users.sourceforge.net>2009-11-28 16:20:02 +0200
committerPetri Hintukainen <phintuka@users.sourceforge.net>2009-11-28 16:20:02 +0200
commitd344bbc99423ac8ed989b324f9f3fb9b56d78bc7 (patch)
tree255842a66f225bb933684cffcae43a7906ad11e4
parent217db986e252cff5401ac28fb77e202ed7576b11 (diff)
downloadxine-lib-d344bbc99423ac8ed989b324f9f3fb9b56d78bc7.tar.gz
xine-lib-d344bbc99423ac8ed989b324f9f3fb9b56d78bc7.tar.bz2
Honour max. number of SPU tracks
-rw-r--r--src/demuxers/demux_ts.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c
index a5fc6ac20..101d49ad3 100644
--- a/src/demuxers/demux_ts.c
+++ b/src/demuxers/demux_ts.c
@@ -1471,6 +1471,14 @@ printf("Program Number is %i, looking for %i\n",program_number,this->program_num
if (this->hdmv > 0) {
if (pid >= 0x1200 && pid < 0x1300) {
/* HDMV Presentation Graphics / SPU */
+
+ if (this->spu_langs_count >= MAX_SPU_LANGS) {
+ xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
+ "demux_ts: too many SPU tracks! ignoring pid 0x%.4x\n",
+ pid);
+ break;
+ }
+
demux_ts_spu_lang *lang = &this->spu_langs[this->spu_langs_count];
memset(lang->desc.lang, 0, sizeof(lang->desc.lang));