matroskadec: check that pointers were initialized before accessing them

fix ticket #14

Signed-off-by: Aurelien Jacobs <aurel@gnuage.org>
This commit is contained in:
Aurelien Jacobs 2011-03-24 00:28:19 +01:00
parent 2a0d4d4cd0
commit 2851b1f656
1 changed files with 5 additions and 3 deletions

View File

@ -1085,19 +1085,21 @@ static void matroska_convert_tags(AVFormatContext *s)
if (tags[i].target.attachuid) {
MatroskaAttachement *attachment = matroska->attachments.elem;
for (j=0; j<matroska->attachments.nb_elem; j++)
if (attachment[j].uid == tags[i].target.attachuid)
if (attachment[j].uid == tags[i].target.attachuid
&& attachment[j].stream)
matroska_convert_tag(s, &tags[i].tag,
&attachment[j].stream->metadata, NULL);
} else if (tags[i].target.chapteruid) {
MatroskaChapter *chapter = matroska->chapters.elem;
for (j=0; j<matroska->chapters.nb_elem; j++)
if (chapter[j].uid == tags[i].target.chapteruid)
if (chapter[j].uid == tags[i].target.chapteruid
&& chapter[j].chapter)
matroska_convert_tag(s, &tags[i].tag,
&chapter[j].chapter->metadata, NULL);
} else if (tags[i].target.trackuid) {
MatroskaTrack *track = matroska->tracks.elem;
for (j=0; j<matroska->tracks.nb_elem; j++)
if (track[j].uid == tags[i].target.trackuid)
if (track[j].uid == tags[i].target.trackuid && track[j].stream)
matroska_convert_tag(s, &tags[i].tag,
&track[j].stream->metadata, NULL);
} else {