summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_mkv.c
diff options
context:
space:
mode:
authormosu <mosu@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-01-19 19:51:07 +0000
committermosu <mosu@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-01-19 19:51:07 +0000
commitc08585dc56ea8f8559ca55e90b8044c137172f08 (patch)
treeb6f0b2fd33ada069191ad79d7b3f033b39b990b6 /libmpdemux/demux_mkv.c
parentd6fad182c2f6aba9eb07c750052ab0b20d9dbf24 (diff)
downloadmpv-c08585dc56ea8f8559ca55e90b8044c137172f08.tar.bz2
mpv-c08585dc56ea8f8559ca55e90b8044c137172f08.tar.xz
Fixed the subtitle line overflowing for SSA if there were too many \N in the subs.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11809 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_mkv.c')
-rw-r--r--libmpdemux/demux_mkv.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/libmpdemux/demux_mkv.c b/libmpdemux/demux_mkv.c
index b38e23f90b..b554a9a60f 100644
--- a/libmpdemux/demux_mkv.c
+++ b/libmpdemux/demux_mkv.c
@@ -2265,6 +2265,12 @@ handle_subtitles(demuxer_t *demuxer, mkv_track_t *track, char *block,
mkv_d->clear_subs_at[mkv_d->subs.lines++]
= timecode + block_duration;
*ptr2 = '\0';
+ if (mkv_d->subs.lines >= SUB_MAX_TEXT)
+ {
+ mp_msg (MSGT_DEMUX, MSGL_WARN, "[mkv] Warning: too many "
+ "sublines to render, skipping\n");
+ return;
+ }
ptr2 = mkv_d->subs.text[mkv_d->subs.lines];
ptr1 += 2;
}
@@ -2282,11 +2288,15 @@ handle_subtitles(demuxer_t *demuxer, mkv_track_t *track, char *block,
{
if (state == 0) /* normal char --> newline */
{
- if (mkv_d->subs.lines == SUB_MAX_TEXT - 1)
- break;
*ptr2 = '\0';
mkv_d->clear_subs_at[mkv_d->subs.lines++]
= timecode + block_duration;
+ if (mkv_d->subs.lines >= SUB_MAX_TEXT)
+ {
+ mp_msg (MSGT_DEMUX, MSGL_WARN, "[mkv] Warning: too many "
+ "sublines to render, skipping\n");
+ return;
+ }
ptr2 = mkv_d->subs.text[mkv_d->subs.lines];
state = 1;
}